df1:
a = c(2, 3, 5, 8, 10, 12)
b = c("NA", "bb", "cc", "aa", "bb", "aa")
c = c("bb", "aa", "bb", "cc", "aa", "aa")
d = c("aa", "cc", "bb", "aa", "aa", "aa")
e = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE)
df1 = data.frame(a, b, c, d, e)
df2:
f = c("aa", "bb")
df2 = data.frame(f)
我想评估df1列b,c,d,以查看该值是否不在df2中。如果是,则保留该值。如果不是,则输入“ Rare”。需要忽略NA。
输出:
a b c d e
2 NA bb aa true
3 bb aa rare false
5 rare bb bb true
8 aa rare aa false
10 bb aa aa true
12 aa aa aa false
确保您的列是as.character()
,然后(并考虑到NA就是您定义的字符串)
df1[2:4] <- lapply(df1[2:4], function(i)replace(i, !i %in% c('NA', df2$f), 'rare'))
df1
# a b c d e
#1 2 NA bb aa TRUE
#2 3 bb aa rare FALSE
#3 5 rare bb bb TRUE
#4 8 aa rare aa FALSE
#5 10 bb aa aa TRUE
#6 12 aa aa aa FALSE
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句