将列减为R中下一行的另一列

将列减为R中下一行的另一列,r,dataframe,R,Dataframe,我想计算c=b-a和d=b2-a3的减法。。。我该怎么做 name a b c=b-a d=b2-a3… peter 80 100 20 30 dancy 70 90 20 20 tiger 70 85 15 20 pop 85 101 16 29 rock 72 111 39 非常感谢你 假设您的数据位于数据框中,要使用tidyverse方法重新创建列,您可以执行以下操作: library

我想计算c=b-a和d=b2-a3的减法。。。我该怎么做

name    a   b   c=b-a   d=b2-a3…
peter   80  100 20      30
dancy   70  90  20      20
tiger   70  85  15      20
pop     85  101 16      29
rock    72  111 39  

非常感谢你

假设您的数据位于数据框中,要使用tidyverse方法重新创建列,您可以执行以下操作:

library(tidyverse)

yourdata <- yourdata %>% 
mutate(c = b - a, 
       d = b - lead(a))
库(tidyverse)
你的数据%
变异(c=b-a,
d=b-导线(a))

相反,您可以使用lag,要增加lag或lead中的步数,您可以使用lag(列名称,n=步数)。

这里有一个带有
数据的选项。表

library(data.table)
setDT(df1)[, c := b - a][, d := b - shift(a, type = 'lead')]

对于
c
YourDataframe$c对于
d
YourDataframe$d如果这是答案,为什么在注释之间?@Edo对于我来说,代码是基本的。如果你愿意,你可以根据我的评论给出答案。
[,':='(c=b-a,d=b-shift(a,type='lead'))]