使用NA填充列,基于另一列中的值

时间:2014-04-10 20:06:41

标签: r dataframe

我们假设我有一个

的数据框df
rowID   x   KeyWord
1_u     1   Hello
2_f     1   Hi
4_y     1   You
3_t     1   Guy
6_u     0.8 hut
7_r     0.9 jui
6_i     0.6 jkl

我希望在NA的值时使用x == 1填充关键字列。我尝试了代码

> df<- transform(df, Keyword = ifelse(x == 1, NA, KeyWord)) 

为此,我得到了结果

rowID   x   KeyWord
1_u     1   NA
2_f     1   NA
4_y     1   NA
3_t     1   NA
6_u     0.8 6
7_r     0.9 7
6_i     0.6 5

为什么会这样?

1 个答案:

答案 0 :(得分:0)

也许使用as.character来强制结果是你需要的?

> transform(df, Keyword = ifelse(x == 1, NA, as.character(KeyWord)))
  rowID   x KeyWord Keyword
1   1_u 1.0   Hello    <NA>
2   2_f 1.0      Hi    <NA>
3   4_y 1.0     You    <NA>
4   3_t 1.0     Guy    <NA>
5   6_u 0.8     hut     hut
6   7_r 0.9     jui     jui
7   6_i 0.6     jkl     jkl