首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对比误差

对比误差
EN

Stack Overflow用户
提问于 2014-04-15 07:26:49
回答 1查看 3.5K关注 0票数 0

以下是代码:

代码语言:javascript
复制
data_complete<-read.delim("D:/Work/output_java_head.txt") #complete data set #working
modelfn<-function(data_complete){
  model<-lm(mctr~price+age_group+gender+brand+product_typeid+google_product_category,data=data_complete)
  data_complete$predicted<-predict(model,data_complete) 
  return(data_complete$predicted)
  sink()
  write.csv("D:/Work/output",i,".csv")
  rm(model)
  gc(TRUE)
} #working

然后使用以下命令:

代码语言:javascript
复制
by(data_complete,data_complete$google_product_category,modelfn)

我发现了一个错误:

contrasts<-中的错误(*tmp*,value = contr.funs[1 + isOFnn]):对比只适用于2级或2级以上的因素

请注意,data_complete$google_product_category中有117个级别,data_complete中总共有22个列。

此外,我还用于测试:

代码语言:javascript
复制
by(data_complete,data_complete$google_product_category,summary)

它给了我正确的答案。

因此,我想在我创建的函数modelfn中存在一些问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-15 10:03:57

我不确定你在写我的评论时是否相信我,但这是一个非常直接的错误,因为你的一个变量只有一个观察到的水平。下面是一个简单的示例来演示它:

代码语言:javascript
复制
> x <- factor(rep(1,100), levels=1:20)
> y <- rnorm(100)
> lm(y~x)
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
  contrasts can be applied only to factors with 2 or more levels

确保你的数据看起来像你认为的那样。即使一个变量有多个因素级别,该变量很可能在多个级别上缺乏实际的观测值。同样,如果您不能共享数据,我们将无法真正帮助您,因此您必须自己寻找发生这种情况的地方。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23077125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档