簡體   English   中英

如何更換 <NA> 用一個數字表示R中的單因素變量?

[英]How to replace <NA> with a number for a single factor variable in R?

  • 數據:數據
  • 變量:v1
  • 我已經嘗試過了,但是它沒有替換“ <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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM