如何使用dplyr或类似的R包在数据帧中进行渐进操作?

如何使用dplyr或类似的R包在数据帧中进行渐进操作?,r,dataframe,dplyr,data.table,mutate,R,Dataframe,Dplyr,Data.table,Mutate,我有这个数据框: df <- data.frame(a = c(1,2,3,4,5), b = c(6,5,4,6,1)) df您可以使用data.table::shift引导b列与a求和: dt[, C := ifelse(is.na(shift(b, type="lead")), a, a + shift(b, type="lead"))][] 或使用replace处理尾箱: dt[, C := { x <- shift(b,

我有这个数据框:

df <- data.frame(a = c(1,2,3,4,5),
                 b = c(6,5,4,6,1))

df您可以使用
data.table::shift
引导b列与a求和:

dt[, C := ifelse(is.na(shift(b, type="lead")), a, a + shift(b, type="lead"))][]
或使用
replace
处理尾箱:

dt[, C := {
        x <- shift(b, type="lead")
        a + replace(x, is.na(x), 0)
    }]
数据:

库(data.table)

dt您可以使用
data.table::shift
将b列与a相加:

dt[, C := ifelse(is.na(shift(b, type="lead")), a, a + shift(b, type="lead"))][]
或使用
replace
处理尾箱:

dt[, C := {
        x <- shift(b, type="lead")
        a + replace(x, is.na(x), 0)
    }]
数据:

库(data.table)
dt在
dplyr
中使用
lead()

df %>%
    mutate(c = a + lead(b, default = 0))
dplyr
中使用
lead()

df %>%
    mutate(c = a + lead(b, default = 0))

或者只是
df%>%mutate(c=a+lead(b,默认值=0))
来处理最后一行是的,这要好得多,我要检查
lead()
是否有这样的论点,但一定是忘记了。谢谢马吕斯!我不知道itor只是
df%>%变异(c=a+lead(b,默认值=0))
来处理最后一行是的,这更好,我要检查
lead()
是否有这样的论点,但一定忘了。谢谢马吕斯!我不知道转换(df,c=a+c(b[-1],0))
df$c
transform(df,c=a+c(b[-1],0))
df$c