R 从后面第n行的其他列数据创建新列
如何从a中创建一个列作为“B”,以便它从a的最后第n行读取数据。例如,给定n=3,B如下所示:R 从后面第n行的其他列数据创建新列,r,R,如何从a中创建一个列作为“B”,以便它从a的最后第n行读取数据。例如,给定n=3,B如下所示: A B 1 100 NA 2 110 NA 3 88 NA 4 68 100 5 70 110 6 118 88 7 200 68 . . . . . . 300 77 related value of A in row 300-3 关于这里有三种方法 n <
A B
1 100 NA
2 110 NA
3 88 NA
4 68 100
5 70 110
6 118 88
7 200 68
. . .
. . .
300 77 related value of A in row 300-3
关于这里有三种方法
n <- 3
3) 数据表
library(data.table)
setDT(df)[, B:= shift(A, n)]
这里有三种方法可以实现这一点,即取
n=3
n <- 3
3) 数据表
library(data.table)
setDT(df)[, B:= shift(A, n)]
如果我想把以前所有的滞后加在一个单元格里呢?那么B中的每个单元格都等于sum(lag(df$A,3))?@Sean你是说
df%>%mutate(B=lag(A,n,default=0),C=cumsum(B))
?我是说在同一个示例中,不是用n lag调用一行,把前n个滞后的总和放进去,这样B的第4行返回A中前3行的总和。我想你说的也一样。如果我想把所有前n个滞后加在一个单元格中呢?那么B中的每个单元格都等于sum(lag(df$A,3))?@Sean你的意思是df%>%mutate(B=lag(A,n,default=0),C=cumsum(B))
?我的意思是在同一个例子中,不是调用一个有n个lag的行,而是把前n个lag的和放在一起,这样B的第4行返回A中前3行的和。我认为你所说的是一样的。