如何串联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中创建新列-

示例

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