【问题标题】:Filter dataset B using levels only in both A and B仅使用 A 和 B 中的级别过滤数据集 B
【发布时间】:2020-11-27 00:51:53
【问题描述】:

我有结构相同的数据集 A 和 B。我想根据一个因子中的一组级别过滤集合 B,其中 A 和 B 中的级别相同。换句话说,仅使用 A 和 B 中一个因子的公共级别保留 B 中的行。

我用下面的方法来提取常见的关卡

InBoth <- intersect(levels(A$FactorName , B$FactorName)

我认为这是 chr 的向量,并且确实给出了正确的常见值列表。

我似乎无法将此列表应用于使用 InBoth 过滤集合 B,这样 B 随后仅包含 B$Factorname 在 InBoth 集合中的行。

我对 R 相对较新,并且正在学习 - 如果您能提供帮助,请提前非常感谢。

更新 我一提交……我就想到了别的东西。以下使用(单个)已知公共级别对子集 B 进行处理

BFiltered <- B[(B$FactorName == "xxx",]

但我希望 BFiltered 包含 InBoth 项中的所有级别(出现在环境的值部分中)。也就是如何用 InBoth 代替“xxx”?

【问题讨论】:

    标签: r filter subset levels


    【解决方案1】:

    这可以工作。

    df_B[df_B$V1 %in% df_A$V1, ]
    

    这将过滤 df_B,只保留在 df_A 中具有相同级别的变量 V1 的观察

    【讨论】:

    • 谢谢你!!!效果很好......真的不知道我是怎么忽略的 - 但非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 2012-06-26
    • 1970-01-01
    • 2022-06-15
    • 2016-05-04
    相关资源
    最近更新 更多