根据其他人的行数据更新行

  • 本文关键字:数据 更新 其他人 r
  • 更新时间 :
  • 英文 :


我很乐意根据其他人的列值更新列,如下所示:

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:-(

您可以使用rowSums来避免for循环:

data[-1, "col"] <- rowSums(data[-nrow(data), c("col_A", "col_B")])

最新更新