R 从后面第n行的其他列数据创建新列

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”,以便它从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 <- 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行的和。我认为你所说的是一样的。