簡體   English   中英

警告消息:無效的因子水平,生成的NA

[英]Warning message:invalid factor level, NA generated

當我嘗試為一列中的某些值分配新的字符值時出現此錯誤。

這很好用:

merge_output$extra_dod[merge_output$extra_dod == 'Refugees camps in forestreserve.'] <-'Refugees'

但這不是:

merge_output$extra_dod[merge_output$extra_dod=='Air Strip'] <-'strip'

它返回此錯誤消息:

Warning message:
  In `[<-.factor`(`*tmp*`, merge_output$extra_dod == "Lime", value = c(5L,  :
  invalid factor level, NA generated

我不確定為什么可以替換某些值,但不能替換其他值。

這是一個以相同方式失敗的簡化示例:

f <- factor(c("a","b","c","d"))
f[f=="d"] <- "e"

警告消息:在[<-.factor*tmp* ,f ==“ d”,value =“ e”)中:無效的因子級別,生成了NA

如果您碰巧嘗試用一個已經存在的因子水平進行替換,那么它可以工作:

f[f=="c"] <- "b"

其他一些常規選項:

  • 在嘗試替換值之前(或在read.csv / read.table使用stringsAsFactors=FALSE類的東西),將變量轉換回字符向量。
  • 使用car::recode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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