R语言 查找列之间的相似性

3qpi33ja  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(151)

我有一个这样的DF。

df <- data.frame(
    b1 = c(2, 6, 3, 80, 4, 77, 1, 9, NA), 
    b2 = c(100, 3, 9, 102, 6, 12, 1, 7, 77))

我想比较b1列和b2列的相似性。因此,如果b1中的任何数字可以在b2中的任何地方找到,则创建一个新列(new)并写入YES。我的想法是得到这样的结果。

df <- data.frame(
    b1 = c(2, 6, 3, 80, 4, 77, 1, 9, NA), 
    b2 = c(100, 3, 9, 102, 6, 12, 1, 7, 77),
    new = c('NO', 'YES', 'YES', 'NO', 'NO', 'YES', 'YES', 'YES', 'NO'))

我试图用这个来解决这个问题,但没有成功。

df$new <- ifelse(df$b1 == df$b2), YES, NO)
nr9pn0ug

nr9pn0ug1#

使用%in%

df$b1 %in% df$b2
#[1] FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE

ifelse(df$b1 %in% df$b2, "YES", "NO")
#[1] "NO"  "YES" "YES" "NO"  "NO"  "YES" "YES" "YES" "NO"

相关问题