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