无效因子水平,RB绑定时生成NA



我需要在牙齿生长中添加一个新的行/向量(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 可以将整数映射到因子水平,但事实并非如此。R的众多特点之一。

您是否正在尝试将 NA 分配给列 len 或 supp?我相信您正在尝试将 NA 分配给 supp。在这种情况下,值的顺序是错误的。这将根据您的需求为您工作:

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

结果:

61  2.0 <NA>  1.5

最新更新