如何在 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

更新於: 10-8-2020

179 次瀏覽

開啟你的職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.