我有一个类似下面的数据集age_structure:
MACHINE_NUMBER | MACHINE_KIND
12345 | A
12346 | A
12347 | A
12345 | B
12348 | B我需要以某种方式确定两个MACHINE_KIND子集中都有哪些MACHINE_NUMBER。在这种情况下,应该只出现12345。到目前为止,我已经尝试像这样设置数据框的子集,但是因为MACHINE_KIND列不在子集中,R抛出了一个错误:
common_numbers <- Reduce(intersect, list(subset(age_structure$MACHINE_NUMBER, MACHINE_KIND == "A"), subset(age_structure$MACHINE_NUMBER, MACHINE_KIND == "B")))
object 'MACHINE_KIND' not found将age_structure名称定义为条件的一部分将运行代码而不会出错,但生成的common_numbers为空。
common_numbers <- Reduce(intersect, list(subset(age_structure$MACHINE_NUMBER, age_structure$MACHINE_KIND == "A"), subset(age_structure$MACHINE_NUMBER, age_structure$MACHINE_KIND == "B")))MACHINE_NUMBER和MACHINE_KIND都是因素。明智的做法是什么?
发布于 2020-05-04 21:06:41
Base R一行:
unique(Reduce(function(x, y){setdiff(x, y)}, split(df$MACHINE_NUMBER, df$MACHINE_NUMBER)))https://stackoverflow.com/questions/61592708
复制相似问题