仅在 A 和 B 中使用级别过滤数据集 B

Filter dataset B using levels only in both A and B

我有结构相同的数据集 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”?

这可行。

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

这将过滤 df_B,仅保留在 df_A

中变量 V1 具有相同水平的观察