簡體   English   中英

無效的因子級別,rbind 時生成的 NA

[英]Invalid factor level, NA generated when rbind

我需要向 ToothGrowth 添加一個新的行/向量(NA、VC、1.5),我做錯了什么? (NA,“VC”,1.5)不工作..

str(ToothGrowth)
'data.frame':   60 obs. of  3 variables:
 $ len : num  4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
 $ supp: Factor w/ 2 levels "OJ","VC": 2 2 2 2 2 2 2 2 2 2 ...
 $ dose: num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...

vast=rbind(ToothGrowth, c(NA,2,1.5))
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = 2) :
  invalid factor level, NA generated

嘗試

vast <- rbind(ToothGrowth, c(NA,"VC",1.5))

或者

vast <- rbind(ToothGrowth, c(NA,levels(ToothGrowth$supp)[2],1.5))

問題是第二個值。 有人可能認為 R 可以 map integer 到因子水平,但事實並非如此。 R 的眾多特性之一。

您是否嘗試將 NA 分配給列 len 或 supp? 我相信您正在嘗試將 NA 分配給 supp。 在這種情況下,值的順序是錯誤的。 這將根據您的需要為您工作:

rbind(ToothGrowth, c(len=2,supp=NA,dose=1.5))

結果:

61  2.0 <NA>  1.5

暫無
暫無

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

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