仅在 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 具有相同水平的观察
我有结构相同的数据集 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 具有相同水平的观察