我有一个列表对象如下。
df1 <- data_frame(ID = paste0(LETTERS[1],1:4), valueA = seq(0.1,0.4,0.1), Category= "Apples", valueDEF = seq(0.1,0.4,0.1), valueDEF2 = seq(0.1,0.4,0.1) )
df2 <- data_frame(ID = paste0(LETTERS[1],5:8), valueB = seq(0.1,0.4,0.1), Category= "Apples2")
df3 <- data_frame(ID = paste0(LETTERS[1],9:12), valueC = seq(0.1,0.4,0.1), Category= "Apples3")
list1 <- list(df1, df2, df3);list1
[[1]]
# A tibble: 4 × 5
ID valueA Category valueDEF valueDEF2
<chr> <dbl> <chr> <dbl> <dbl>
1 A1 0.1 Apples 0.1 0.1
2 A2 0.2 Apples 0.2 0.2
3 A3 0.3 Apples 0.3 0.3
4 A4 0.4 Apples 0.4 0.4
[[2]]
# A tibble: 4 × 3
ID valueB Category
<chr> <dbl> <chr>
1 A5 0.1 Apples2
2 A6 0.2 Apples2
3 A7 0.3 Apples2
4 A8 0.4 Apples2
[[3]]
# A tibble: 4 × 3
ID valueC Category
<chr> <dbl> <chr>
1 A9 0.1 Apples3
2 A10 0.2 Apples3
3 A11 0.3 Apples3
4 A12 0.4 Apples3
我想把它们合并成一个数据框架的基础上共同列名。
预期答案
ID Category
A1 Apples
A2 Apples
A3 Apples
A4 Apples
A5 Apples2
A6 Apples2
A7 Apples2
A8 Apples2
A9 Apples3
A10 Apples3
A11 Apples3
A12 Apples3
如何解决这个问题?非常感谢。
2条答案
按热度按时间mrfwxfqh1#
我们可以使用
intersect()
。lapply()
将列名应用于列表中的每个 Dataframe 。intersect()
函数将结果列表传递给Reduce()
。bind_rows()
获取单个 Dataframe :anhgbhbe2#
作为对TarJae的回答的补充,下面是一个在
dplyr
的select
函数中使用tidyselect
的where
函数的一行代码: