更改data.frame中的元素列

时间:2019-09-18 21:24:35

标签: r

这是我的数据框:

df<-as.data.frame(matrix(seq(1:20),5,5))

我需要调整的是该列。基本上,我需要排除第一行,然后向上移动所有列,使最后一行具有重复的值。

听起来很混乱,但结果应该是这样:

  V1 V2 V3 V4 V5
1  2  7 12 17  2
2  3  8 13 18  3
3  4  9 14 19  4
4  5 10 15 20  5
5  5 10 15 20  5

实际上,我知道该怎么做,但这不是一个优雅的方法。

有帮助吗?

2 个答案:

答案 0 :(得分:3)

通过删除数据集的第一行和最后一行,rbind是一个数据集

rbind(df[-1, ], df[nrow(df),])

或使用索引

df[c(2:nrow(df), nrow(df)),]

答案 1 :(得分:2)

这里是一个例子。虽然我想知道您所说的优雅?您的意思是获取可读的代码吗?更少的代码行?更好的表现?

library(tidyverse)
df<-as.data.frame(matrix(seq(1:20),5,5)) 
df <- df %>% slice(-1)
df[dim(df)[1] +1,] <- df[dim(df)[1],]