我知道有幾種方法可以根據另一列創建列,但是我想知道如何在創建數據框時執行此操作。
例如,這有效,但不是我想要使用它的方式。
v1 = rnorm(10)
sample_df <- data.frame(v1 = v1,
cs = cumsum(v1))
這不起作用:
sample_df2 <- data.frame(v2 = rnorm(10),
cs = cumsum(v2))
有沒有辦法直接在data.frame
函數中實現?提前致謝。
它不能使用 來完成data.frame
,但 packagetibble
實現了data.frame
具有您想要的功能的模擬。
library("tibble")
tib <- tibble(x = 1:6, y = cumsum(x))
tib
# # A tibble: 6 × 2
# x y
# <int> <int>
# 1 1 1
# 2 2 3
# 3 3 6
# 4 4 10
# 5 5 15
# 6 6 21
在大多數情況下,生成的對象(稱為“tibble”)可以被視為一個數據框,但如果您確實需要一個數據框,那麼您可以這樣做:
dat <- as.data.frame(tib)
dat
# x y
# 1 1 1
# 2 2 3
# 3 3 6
# 4 4 10
# 5 5 15
# 6 6 21
如果您願意,您可以將所有內容包裝在一個函數中:
f <- function(...) as.data.frame(tibble(...))
f(x = 1:6, y = cumsum(x))
# x y
# 1 1 1
# 2 2 3
# 3 3 6
# 4 4 10
# 5 5 15
# 6 6 21
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句