如何使用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$ctransform(df,c=a+c(b[-1],0))
或df$c