如果列表中没有* {*,则将字符串值重新编码为NA

时间:2019-03-20 02:57:15

标签: r

非常简单的问题,但我找不到任何答案。我有一个带有“ foo”列的数据框,其中包含“ A”,“ B”,“ C”,“ D”,“ F”等。

我需要将每个不是“ A”或“ B”的值重新编码为NA。

下面的代码不起作用,因为字符串无法进行类似的操作...如何为字符串完成此操作?

df[df$foo != "A" | "B"] <- NA

1 个答案:

答案 0 :(得分:1)

尝试

df$foo[!(df$foo %in% c("A","B"))] <- NA

transform(df, foo=replace(foo, !(foo %in% c("A","B")), NA))