如何在R数据框中连接数值列?


如果我们在R数据框的多个列中分散了值,则需要将它们组合并创建一个单列,此组合过程称为连接。值的散布主要发生在数据格式不佳,无法加载到R中的情况下。因此,为了处理此散布问题,我们需要使用apply函数。

考虑以下数据框:

示例

 在线演示

x1<-rpois(20,5)
y1<-rpois(20,5)
z1<-rpois(20,5)
a1<-rpois(20,5)
df1<-data.frame(x1,y1,z1,a1)
df1

输出

  x1 y1 z1 a1
1 3  2  1  8
2 5  2  5  8
3 9  4  1  4
4 3  4  4  4
5 5  4  4  4
6 6  5  5  3
7 5  5  5  6
8 7  3  6  4
9 5  7  6  8
10 3 3  4  5
11 7 4  4  8
12 4 3  2  4
13 6 3  6  6
14 7 5  3  1
15 6 9  8  3
16 9 6  11 6
17 5 5  6  6
18 2 4  4  9
19 1 8  2  4
20 11 4 4  2

通过连接df1所有列中的值,在df1中创建一个新列:

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

df1$all<-apply(df1,1,paste,collapse="")
df1

输出

  x1 y1 z1 a1 all
1 3  2  1  8  3218
2 5  2  5  8  5258
3 9  4  1  4  9414
4 3  4  4  4  3444
5 5  4  4  4  5444
6 6  5  5  3  6553
7 5  5  5  6  5556
8 7  3  6  4  7364
9 5  7  6  8  5768
10 3 3  4  5  3345
11 7 4  4  8  7448
12 4 3  2  4  4324
13 6 3  6  6  6366
14 7 5  3  1  7531
15 6 9  8  3  6983
16 9 6  11 6  96116
17 5 5  6  6  5566
18 2 4  4  9  2449
19 1 8  2  4  1824
20 11 4 4  2  11442

示例

 在线演示

x2<-sample(LETTERS[1:4],20,replace=TRUE)
y2<-sample(LETTERS[1:4],20,replace=TRUE)
z2<-sample(LETTERS[1:4],20,replace=TRUE)
df2<-data.frame(x2,y2,z2)
df2

输出

  x2 y2 z2
1 D  D  C
2 D  D  C
3 C  D  A
4 D  D  D
5 A  C  B
6 A  D  A
7 B  B  D
8 B  C  A
9 D  A  C
10 A A  B
11 B D  D
12 A D  C
13 D C  C
14 C A  B
15 A D  A
16 A D  C
17 D C  A
18 A B  B
19 D A  C
20 D B  C

通过连接df2所有列中的值,在df2中创建一个新列:

示例

df2$all<-apply(df2,1,paste,collapse="")
df2

输出

 x2 y2 z2 all
1 D D  C  DDC
2 D D  C  DDC
3 C D  A  CDA
4 D D  D  DDD
5 A C  B  ACB
6 A D  A  ADA
7 B B  D  BBD
8 B C  A  BCA
9 D A  C  DAC
10 A A B  AAB
11 B D D  BDD
12 A D C  ADC
13 D C C  DCC
14 C A B  CAB
15 A D A  ADA
16 A D C  ADC
17 D C A  DCA
18 A B B  ABB
19 D A C  DAC
20 D B C  DBC

更新于:2021年2月6日

779 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告