使用上一行中的值在R中一次操作多列

时间:2016-04-09 02:27:47

标签: r dataframe

大家好,我需要帮助 我有与此类似的数据集,其中包含多个行和列。

df<- data.frame(A=seq(0.01,0.05,0.01),
            B=c(0.01, -0.24, 0, -0.21, 0), 
            C=seq(0.03,0.07,0.01),
            D=c(0.4,0.5,0,0,2))

我使用了shift命令并创建了另一行E.

df[ , E := shift(A)+A]

现在我想对整个数据帧df应用类似的函数,并使用类似的方法立即创建类似于E的行F,G,H。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是替代方案:

new_cols <- c('E','F','G','H')

old_cols <- colnames(df)

for (i in seq_along(new_cols)){

    eval(parse(text = paste0("df[,",new_cols[i],":= shift(",old_cols[i],")+",old_cols[i],"]")))
}