从包含数据框的列表中设置交集

时间:2017-03-22 22:44:40

标签: r dataframe dplyr intersection

我有一个列表,其中列表中的每个元素都是数据框。

intersect

我的列表长度为10,其中有10个数据帧。每个数据框有30个项目。我希望df1 <- df.list[[1]]$VarName df2 <- df.list[[2]]$VarName df3 <- df.list[[3]]$VarName df4 <- df.list[[4]]$VarName intersect(intersect(intersect(df1,df2), df3), df4) 每个数据框的前25个与另一个数据框最终得到所有数据框中最常见的项目。

这是我到目前为止所做的:

dplyr

是否可以使用strNameList[pos][0]或任何其他工具执行此操作。

1 个答案:

答案 0 :(得分:5)

在基地R中尝试Reduce

ls <- vector("list", 10)
for (i in 1:10) ls[[i]] <- head(df.list[[i]]$VarName, 25)
Reduce(intersect, ls)

或单行代码:

Reduce(intersect, lapply(df.list, function(x) head(x$VarName, 25)))
相关问题