我很乐意根据其他人的栏值更新栏,如下所示:
data[,"col"] <- data[,"col_A"] + data[,"col_B"]
请注意,上面完成的所有计算均基于同一当前行中的值。 但是,我试图根据上一个行中的值更新列。
for( i in 2:nrow(data)) ){
data[i,"col"] <- data[i-1,"col_A"] + data[i-1,"col_B"]
}
与第一个命令一样,如何仅使用一个命令而不执行“ for”迭代呢?
谢谢!
编辑1
基于@ r2evans的注释,该注释指向dplyr::lag
函数,我可以使用以下代码来解决:
data[,"col"] <- lag(data[,"col_A"]) + lag(data[,"col_B"])
我可以直接处理第一行中发生的NA
。
谢谢@ r2evans:-)
答案 0 :(得分:0)
您可以使用for
来避免rowSums
循环:
data[-1, "col"] <- rowSums(data[-nrow(data), c("col_A", "col_B")])