![](/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.