gpt4 book ai didi

r - 从包含数据帧的列表设置交集

转载 作者:行者123 更新时间:2023-12-02 15:43:21 24 4
gpt4 key购买 nike

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

> df.list[[1]]
Change Diff VarName
1 10.433354 5.311973e-02 a
2 4.587958 1.517604e-02 b
3 4.566829 1.082679e-02 c
4 4.464458 1.345807e-02 d
5 4.146909 7.758011e-03 e
6 4.141556 1.416043e-02 f

> df.list[[2]]
Change Diff VarName
1 12.443354 5.311973e-02 j
2 3.587958 1.517604e-02 k
3 4.566829 1.082679e-02 a
4 4.464458 1.345807e-02 b
5 3.146909 7.758011e-03 d
6 2.141556 1.416043e-02 e

我的列表长度为 10,其中有 10 个数据帧。每个数据框有 30 个项目。我想要将每个数据帧的前 25 个数据与另一个数据帧相交,最终获得所有数据帧中最常见的项目。

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

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)

是否可以使用 dplyr 或任何其他工具来执行此操作。

最佳答案

尝试在基础 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)))

关于r - 从包含数据帧的列表设置交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42964031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com