将两个列表合并到一个数据框中,保留行名

时间:2019-11-22 20:45:47

标签: r dataframe

所以我有两个列表:

列表X长5行,格式为:

Thing1 1
Thing2 2
Thing3 3
Thing4 4
Thing5 5

列表Y也有五行:

Thing1 A
Thing2 B
Thing3 C
Thing4 D
Thing5 E

我想要的输出是一个数据帧:

Things X Y
Thing1 1 A
Thing2 2 B
Thing3 3 C
Thing4 4 D
Thing5 5 E

实际上,有500多个“事物”,所以我不能只在代码中将它们全部命名。

帮助我了解如何执行此操作。我完全迷路了。

谢谢!

2 个答案:

答案 0 :(得分:0)

只需使用merge

  a <- list(things=c('Things1','Things2','Things3'),Y=c('A','B','C')) 
  b <- list(things=c('Things1','Things2','Things3'),X=c(1,2,3))
  merge(a,b,by='things')


   things  Y  X
1 Things1  A  1
2 Things2  B  2
3 Things3  C  3

答案 1 :(得分:0)

如果我理解您的问题,我将使用事物作为联接值对数据进行联接。

library(dplyr)
a <- data.frame( name = c('thing1','thing2','thing3','thing4','thing5'),
             X = 1:5 )
b <- data.frame(name = c('thing1','thing2','thing3','thing4','thing5'),
            Y = c('A','B','C','D','E'))

a %>% inner_join(b , by = c('name'= 'name'))

       name X Y
   1 thing1 1 A
   2 thing2 2 B
   3 thing3 3 C
   4 thing4 4 D
   5 thing5 5 E