下面是代碼:錯誤的反差
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
然後使用這個命令:
by(data_complete,data_complete$google_product_category,modelfn)
我得到這個錯誤:
Error in
contrasts<-
(*tmp*
, value = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels
請注意,在117個水平data_complete$google_product_category
並且在data_complete
中共有22列。
我也用於測試:
by(data_complete,data_complete$google_product_category,summary)
它給了我正確的答案。
所以我想在我創建的功能modelfn
中有一些問題。
非常簡單的錯誤:你只有一個變量只有水平。我想這可能是由於缺失,但不知道沒有看數據是不可能的。 – Thomas
@Thomas正如我上面提到的那樣,我爲它建模的變量有117個級別,並且我已經在R控制檯中使用「級別」和「彙總」對它進行了測試。至於數據部分,我不能分享它,因爲它是保密的。但我可以告訴你,數據已經徹底清理並測試了好幾次。 – heybhai