使用R将数据重新编码到现有列中

时间:2016-07-10 00:03:30

标签: r

我有一个名为CONDITIONALAPPROVAL的专栏,其中包含很多字母N。我想将所有这些N重新编码为0。下面是我正在使用的代码,但是当我仅在<NA> s之后打印列时。

attach(my_data)
my_data$CONDITIONALAPPROVAL[my_data$CONDITIONALAPPROVAL=='N'] <- 0
my_data$CONDITIONALAPPROVAL

这似乎很简单,但它不起作用,当我输出该列时,只有<NA> s应该有0 s。

2 个答案:

答案 0 :(得分:0)

我们可以使用data.table

 library(data.table)
 setDT(my_data, key = "CONDITIONALAPPROVAL")[
    , CONDITIONALAPPROVAL :=  as.character(CONDITIONALAPPROVAL)
        ][("N"), CONDITIONALAPPROVAL := "0"]

答案 1 :(得分:0)

首先使变量成为一个字符串(因为它似乎是一个因素):

my_data$CONDITIONALAPPROVAL <- as.character(my_data$CONDITIONALAPPROVAL)

然后:

my_data$CONDITIONALAPPROVAL[my_data$CONDITIONALAPPROVAL=='N'] <- 0

如果需要/相关,请转换为数字:

my_data$CONDITIONALAPPROVAL <- as.numeric(my_data$CONDITIONALAPPROVAL)