我想识别dataframe1中存在的行,这些行基于特定列在dataframe2中不存在 . 我使用下面的代码来获取所需的信息 .
diffId <- anti_join(dat$ID,datwe$ID)
不幸的是,我遇到了一个错误:
UseMethod中的错误(“anti_join”):没有适用于“anti_join”的方法应用于类“factor”的对象
我检查了两个数据帧中所需列的类,结果是 factor
. 还试图将列分成单独的变量,假设它可以解决问题,但没有运气!
fac1 <- datwe$ID
fac2 <- dat$ID
diffId <- anti_join(fac2,fac1)
你能分享一下你的想法吗?
谢谢
1 回答
几乎所有
dplyr
函数都在tbls
上运行(取决于它可以是data.frame
,data.table
,数据库连接等等),所以你真正想要的是这样的:请注意,订单显然不会保留 .
如果您使用不同级别的因子(与上面示例中的数字不同),则涉及
factor
和_2848774之间的转换 .如果你想对矢量进行操作,那么你可以使用
setdiff
(base
和dplyr
都有)