在r中转换值时导致NA的原因是什么?

时间:2016-11-01 01:44:59

标签: r

在df中,有一个因子列如下:

q5
A
1
B
1

我想将A B转换为0
df$q5<-as.character(df$q5)

df$q5[df$q5!=1]<-0

但结果是:

q5
NA
1
NA
1

问题是什么?

2 个答案:

答案 0 :(得分:1)

我们可以使用recode更改levels列的factor,而不是转换为character,然后进行更改。

library(car)
df$q5 <- recode(df$q5, "c('A', 'B') = 0")
df$q5
#[1] 0 1 0 1
#Levels: 0 1

答案 1 :(得分:0)

您的问题无法重现。

df <- read.table(con<-file("clipboard"),header=T)

df$q5.char <- as.character(df$q5)

df$q5.char[df$q5.char!=1] <- 0
  q5 q5.char
1  A       0
2  1       1
3  B       0
4  1       1