【发布时间】:2015-06-16 03:42:10
【问题描述】:
我正在尝试使用 Amelia 包估算一个大型数据集。调用amelia 函数时出现此错误:
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
因为我没有 1 级的因子变量,所以我开始为变量删除变量,以查看是哪个变量导致了这个问题。我追踪到这个数值变量,当我从数据集中删除这个单个变量时,amelia 工作:
> str(train$ABC)
num [1:1600] 5.19 5.38 5.59 5.26 5.12 ...
但是这个变量并没有什么奇怪的:
> summary(train$ABC)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
4.533 5.166 5.328 5.434 5.557 7.914 610
> summary(na.omit(train))
ABC ...
Min. :4.533
1st Qu.:5.196
Median :5.384
Mean :5.512
3rd Qu.:5.668
Max. :7.520
> var(train$ABC,na.rm=T)
[1] 0.1969697
> aa <- na.omit(train)
> var(aa$ABC)
[1] 0.2500173
很抱歉,我无法提供完整的数据集,因为这是我正在进行的一项医学研究,我无法举出一个简单的例子。
还有什么可能导致此错误?我应该从哪里开始寻找? 谢谢。
【问题讨论】:
-
你解决了吗?我也有同样的问题...