我有一个像这样的数据帧:
df <- data.frame(start=c(5,4,2),end=c(2,6,3))
start end
5 2
4 6
2 3
Run Code Online (Sandbox Code Playgroud)
我想要以下结果:
start end diff
5 2
4 6 1
2 3 -1
Run Code Online (Sandbox Code Playgroud)
基本上它是:
end[2] (second row) - start[1] = 6-5=1
和 end[3] - start[2] = 3-4 = -1
在R中这样做的好方法是什么?
小智 11
只需一个简单的向量减法即可
df$diff <- c(NA,df[2:nrow(df), 2] - df[1:(nrow(df)-1), 1])
start end diff
1 5 2 NA
2 4 6 1
3 2 3 -1
Run Code Online (Sandbox Code Playgroud)