![](/img/trans.png)
[英]How to replace a number with NA in R but add the replaced number to a different variable?
[英]How to replace <NA> with a number for a single factor variable in R?
我已经尝试过了,但是它没有替换“ <NA>”(没有空格)
cwm$v1 <- factor(cwm$v2) replace(cwm$v1, cwm$v1=="< NA >", 9)
再次没有空格。 它仍然带“ <NA>”给我变量
符号<NA>
是一个因数缺失的值:
> factor(c("a",NA,"b"))
[1] a <NA> b
Levels: a b
因此,您可以像所有缺少的值一样简单地使用is.na
,但是您可能会看到以下内容:
> v1 <- factor(c("a", NA,"b"))
> v1[is.na(v1)] <- 9
> v1
[1] a <NA> b
Levels: a b
Warning message:
In `[<-.factor`(`*tmp*`, is.na(v1), value = 9) :
invalid factor level, NA generated
原因很简单:9不是那个因素的水平。 因此,为了完成此任务,需要在转换为因子之前进行以下替换:
> v2 <- c("a",NA,"b")
> v2[is.na(v2)] <- 9
> v1 <- factor(v2)
> v1
[1] a 9 b
Levels: 9 a b
现在您有9个单独的级别。 如果您不希望这样做,则不应首先使用因子。 因此,如果您从一个因素开始,请先转换为character
:
> v1 <- factor(c("a", NA,"b"))
> v1 <- as.character(v1)
> v1[is.na(v1)] <- 9
> v1
[1] "a" "9" "b"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.