首页 > 解决方案 > R评估一个值是否存在于另一个表中

问题描述

df1:

a = c(2, 3, 5, 8, 10, 12) 
b = c("aa", "bb", "cc", "aa", "bb","aa") 
c = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE) 
df1 = data.frame(a, b, c)

df2:

df2 = c("aa", "bb")

我想评估 df1$b 以查看该值是否在 df2$d 中。如果是,则保留该值。如果不是,则输入“稀有”

输出:df1

a  b    c
2  aa   true
3  bb   false
5  rare true
8  aa   false
10 bb   true
12 aa   false

标签: r

解决方案


这可以在base R

#Data
a = c(2, 3, 5, 8, 10, 12) 
b = c("aa", "bb", "cc", "aa", "bb","aa") 
c = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE) 
df1 = data.frame(a, b, c,stringsAsFactors = F)
df2 <- data.frame(d=c("aa", "bb"),stringsAsFactors = F)
#Compute
df1$b <- ifelse(df1$b %in% df2$d,df1$b,'rare')

输出:

   a    b     c
1  2   aa  TRUE
2  3   bb FALSE
3  5 rare  TRUE
4  8   aa FALSE
5 10   bb  TRUE
6 12   aa FALSE

推荐阅读