根据R中另一列中的条件,将NA添加到列(已具有NA和值)

时间:2014-10-14 21:57:10

标签: r

我有一个像这样的数据框

a b    f
0 S NA
0 A 0.88
1 A 0.85
0 A 0.98
1 A 1.01
1 S NA
1 B 1.03

并希望根据'a'(if a == 1)的值将NA添加到列'f';也不影响已经在列'f'

中的NA

所以看起来像这样

   a b    f
1: 0 S NA
2: 0 A 0.88
3: 1 A NA
4: 0 A 0.98
5: 1 A NA
6: 1 S NA
7: 1 B NA

任何建议都非常感谢 谢谢 米

2 个答案:

答案 0 :(得分:1)

只做

df$f[df$a == 1] <- NA

答案 1 :(得分:1)

您还可以使用is.na<-替换功能。

is.na(df$f) <- df$a == 1

以下是您的数据示例。

within(df, is.na(f) <- a == 1)
#   a b    f
# 1 0 S   NA
# 2 0 A 0.88
# 3 1 A   NA
# 4 0 A 0.98
# 5 1 A   NA
# 6 1 S   NA
# 7 1 B   NA