我有一个数据框列表,并希望它们之间具有a
的所有唯一值
dd <- list()
dd$data <- list(one = data.frame(a = c(1,2,3)),
two = data.frame(a = c(1,2,4)))
$data
$data$one
a
1 1
2 2
3 3
$data$two
a
1 1
2 2
3 4
我想退货
1 2 3 4
我知道我可以将两个数据帧绑定在一起,然后寻找唯一值,但是在我的实际数据集中,数据帧列表的大小不同,列不同,只有a
相同,所以我认为这不是计算量最大的优雅的解决方案
我们可以unlist
data.frames并获得unique
元素
unique(unlist(dd$data))
#[1] 1 2 3 4
如果只需要提取'a'列,则>
unique(unlist(lapply(dd$data, `[[`, "a"))) #[1] 1 2 3 4
或带有
map/pluck
library(dplyr)
library(purrr)
map(dd$data, pluck, "a") %>%
flatten_dbl %>%
unique
#[1] 1 2 3 4