R中如何利用%in%运算结果生成ID匹配状态统计数据框
R生成ID匹配状态数据框解决方案
前置示例数据
ids1 <- c(0, 2, 3, 4, 8) ids2 <- c(2, 4, 5, 7, 11)
Base R实现
直接调用data.frame()构造即可,注意in是R的保留关键字,需要加反引号包裹,同时设置check.names = FALSE避免R自动修改列名:
result <- data.frame( ID = ids1, `in` = ids1 %in% ids2, out = !ids1 %in% ids2, check.names = FALSE )
执行后输出的result结构和需求完全一致。
Tidyverse实现
用tibble构造更简洁,tibble原生支持非标准命名的列,无需额外设置参数:
library(tibble) result <- tibble( ID = ids1, `in` = ID %in% ids2, out = !`in` )
如果需要后续做更多处理,可以搭配dplyr的管道操作,写法更流畅。
注意:后续调用
in列时,也需要用反引号包裹,写法为result$in``,避免语法报错。
内容的提问来源于stack exchange,提问作者Joe King
相关产品推荐
相关产品推荐

