如何在R数据帧中的列之间或最后一列之后添加一列?
由于没有人能完美地完成工作,因此人们可能会忘记添加分析所需的所有列,但是可以解决此问题。如果数据框中缺少一列,而我们后来才知道,则可以在重新排序列的帮助下轻松添加它。
示例
请看以下数据帧-
> x1<-1:20 > x2<-letters[1:20] > x3<-rep(c(1,2),times=10) > df<-data.frame(x1,x2,x3) > df x1 x2 x3 1 1 a 1 2 2 b 2 3 3 c 1 4 4 d 2 5 5 e 1 6 6 f 2 7 7 g 1 8 8 h 2 9 9 i 1 10 10 j 2 11 11 k 1 12 12 l 2 13 13 m 1 14 14 n 2 15 15 o 1 16 16 p 2 17 17 q 1 18 18 r 2 19 19 s 1 20 20 t 2
假设缺少y1列,该列需要在x1和x2之间,则可以按如下所示创建和添加它-
> df$y1<-rep(c(22,24,26,28),times=5) > df<-df[,c("x1","y1","x2","x3")] > df x1 y1 x2 x3 1 1 22 a 1 2 2 24 b 2 3 3 26 c 1 4 4 28 d 2 5 5 22 e 1 6 6 24 f 2 7 7 26 g 1 8 8 28 h 2 9 9 22 i 1 10 10 24 j 2 11 11 26 k 1 12 12 28 l 2 13 13 22 m 1 14 14 24 n 2 15 15 26 o 1 16 16 28 p 2 17 17 22 q 1 18 18 24 r 2 19 19 26 s 1 20 20 28 t 2
假设缺少另一列,该列应位于最后一个位置,则可以按如下方式创建和添加它:
> df$y2<-rep(c(100,105,110,115,120),times=4) > df<-df[,c("x1","y1","x2","x3","y2")] > df x1 y1 x2 x3 y2 1 1 22 a 1 100 2 2 24 b 2 105 3 3 26 c 1 110 4 4 28 d 2 115 5 5 22 e 1 120 6 6 24 f 2 100 7 7 26 g 1 105 8 8 28 h 2 110 9 9 22 i 1 115 10 10 24 j 2 120 11 11 26 k 1 100 12 12 28 l 2 105 13 13 22 m 1 110 14 14 24 n 2 115 15 15 26 o 1 120 16 16 28 p 2 100 17 17 22 q 1 105 18 18 24 r 2 110 19 19 26 s 1 115 20 20 28 t 2 120