如何在 R 数据框中从底部开始查找行值之间的差异?
如果一个 R 数据框包含所有数值列,并且我们想找到行值之间的差异,那么我们将丢失数据框的第一行,因为它不会从任何行中减去。这可以通过使用 head 函数和减号来实现。它将按以下方式工作:从最后一行减去倒数第二行,然后从倒数第二行减去倒数第三行,依此类推。
示例
考虑以下数据框 -
x1<-rpois(20,2) y1<-rpois(20,3) z1<-rpois(20,5) w1<-rpois(20,8) v1<-rpois(20,10) df1<-data.frame(x1,y1,z1,w1,v1) df1
输出
x1 y1 z1 w1 v1 1 2 3 3 13 15 2 4 1 8 12 7 3 1 1 5 8 8 4 2 2 5 6 11 5 4 4 5 7 8 6 4 9 4 8 6 7 1 2 4 10 12 8 1 3 4 10 9 9 2 2 3 7 6 10 2 5 6 8 10 11 1 2 3 4 8 12 0 2 4 12 11 13 3 5 5 7 5 14 1 2 3 4 7 15 1 3 6 6 9 16 3 6 4 12 10 17 3 1 3 14 17 18 4 4 4 7 11 19 2 3 7 6 14 20 3 4 4 9 15
查找从底部开始的差异 -
示例
tail(df1,-1)-head(df1,-1)
输出
x1 y1 z1 w1 v1 2 2 -2 5 -1 -8 3 -3 0 -3 -4 1 4 1 1 0 -2 3 5 2 2 0 1 -3 6 0 5 -1 1 -2 7 -3 -7 0 2 6 8 0 1 0 0 -3 9 1 -1 -1 -3 -3 10 0 3 3 1 4 11 -1 -3 -3 -4 -2 12 -1 0 1 8 3 13 3 3 1 -5 -6 14 -2 -3 -2 -3 2 15 0 1 3 2 2 16 2 3 -2 6 1 17 0 -5 -1 2 7 18 1 3 1 -7 -6 19 -2 -1 3 -1 3 20 1 1 -3 3 1
让我们看看另一个例子 -
示例
x2<-sample(1:10,20,replace=TRUE) y2<-sample(1:10,20,replace=TRUE) z2<-sample(1:10,20,replace=TRUE) w2<-sample(1:10,20,replace=TRUE) v2<-sample(1:10,20,replace=TRUE) df2<-data.frame(x2,y2,z2,w2,v2) df2
输出
x2 y2 z2 w2 v2 1 10 6 2 8 8 2 8 7 1 6 10 3 6 5 10 2 8 4 3 5 4 4 4 5 10 6 3 1 3 6 5 6 6 7 1 7 4 7 5 9 4 8 2 6 2 1 1 9 2 7 5 4 4 10 2 2 6 6 9 11 2 2 4 8 3 12 2 10 1 5 2 13 8 3 8 8 10 14 8 9 3 10 3 15 7 5 10 2 1 16 2 8 4 7 5 17 4 3 7 4 2 18 5 8 3 8 2 19 5 9 5 4 2 20 6 5 6 7 9
示例
tail(df2,-1)-head(df2,-1)
输出
x2 y2 z2 w2 v2 2 -2 1 -1 -2 2 3 -2 -2 9 -4 -2 4 -3 0 -6 2 -4 5 7 1 -1 -3 -1 6 -5 0 3 6 -2 7 -1 1 -1 2 3 8 -2 -1 -3 -8 -3 9 0 1 3 3 3 10 0 -5 1 2 5 11 0 0 -2 2 -6 12 0 8 -3 -3 -1 13 6 -7 7 3 8 14 0 6 -5 2 -7 15 -1 -4 7 -8 -2 16 -5 3 -6 5 4 17 2 -5 3 -3 -3 18 1 5 -4 4 0 19 0 1 2 -4 0 20 1 -4 1 3 7
广告