2016-03-03 19 views
0

我设法生成一组功能,因为我想使预测,但叫停努力,因为我有我的列名一些特殊charachters像应用模式:符号列名

[28] "Ajakirjandus" 
[29] "Aksessuaarid" 
[30] "Autokaubad" 
[31] "Beebid" 
[32] "Beebikaubad" 
[33] "Gurmeetooted" 
[34] "Heategevuskaubad" 
[35] "Hoidised" 
[36] "Hügieen" 
[37] "Jäätised" 
[38] "Jalatsid" 
[39] "Jalatsid (realisatsioon)" 
[40] "Joogid" 
[41] "Juuksehooldus" 
[42] "Juustud" 
[43] "Kalatooted" 
[44] "Kange alkohol" 
[45] "Kantselei" 
[46] "Kastmed" 
[47] "Kiirtoit" 
[48] "Kirjandus" 
[49] "Kodusisustus" 
[50] "Kohv, tee, kakao" 
[51] "Kondiitritooted" 
[52] "Kuivained" 
[53] "Külmutatud tooted" 
[54] "Küpsised ja näksid" 
[55] "Lahja alkohol" 
[56] "Laste jalatsid" 
[57] "Laste jalatsid (realisatsioon)" 
[58] "Laste sokid, pesu" 
[59] "Laste valmisriided" 
[60] "Leib, sai" 
[61] "Lemmikloomakaubad" 
[62] "Liha" 
[63] "Liha (Shop in Shop)" 
[64] "Lihatooted" 
[65] "Lõhnad ja higistamisvastased vahendid" 
[66] "Maailma köögid" 
[67] "Maitseained" 
[68] "Maiustused" 
[69] "Mängud" 
[70] "Meedia" 
[71] "Meikimine" 
[72] "Munad" 
[73] "Näo ja kehahooldus" 
[74] "Pesemise keskkond" 
[75] "Piimatooted" 
[76] "Piim (realisatsioon)" 
[77] "Pühade ja tähtpäevakaunistused" 
[78] "Puhastus- ja hooldusvahendid" 
[79] "Puhvet" 
[80] "Puu-ja köögivili" 
[81] "Rasvad" 
[82] "Riided" 
[83] "Rõivaste ja jalatsite hooldus ning hoidmine" 
[84] "Säilitamine ja hoidistamine" 
[85] "Selveri kile- ja paberkotid" 
[86] "Selveri Küpsetuspunkt (pagarid)" 
[87] "Sokid/pesu" 
[88] "Söömine ja joomine" 
[89] "Sportimine" 
[90] "Taara" 
[91] "Taimekasvatus" 
[92] "Teenuste müük" 
[93] "Teenuste vahendamine" 
[94] "Tehnika" 
[95] "Tekstiil" 
[96] "Tervisekaubad" 
[97] "Toidu valmistamine" 
[98] "Tualett- ja majapidamispaberid" 
[99] "Tubakatooted" 
[100] "Vabas õhus olemine" 
[101] "Valmistoidud" 
[102] "Valmistoidud (Shop in Shop)" 
[103] "Värske kala" 
[104] "Värske kala (Shop in Shop)" 

当我试着用它来运行一个模型:

> model<-glm(gg3$kltype ~ gg3$Puu-ja köögivili, data = gg3 , family = 'binomial') 
Error: unexpected symbol in "model<-glm(gg3$kltype ~ gg3$Puu-ja köögivili" 

> model<-glm(kltype ~ ., data = gg3 , family = 'binomial') 
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
    contrasts can be applied only to factors with 2 or more levels 

两者都失败了。对这里的错误有什么线索?
感谢任何帮助。
谢谢!

回答

0

对于此部分:

> model<-glm(gg3$kltype ~ gg3$Puu-ja köögivili, data = gg3 , family = 'binomial') 
Error: unexpected symbol in "model<-glm(gg3$kltype ~ gg3$Puu-ja köögivili" 

可以使用$操作,如果有一个空间不能访问的对象。我建议使用[[运算符和一个字符串作为gg3$Puu-ja köögivili的列名,所以你应该使用gg3[['Puu-ja köögivili']]

假设你有一个名为“测试名称”列:

mtcars[['test name']] <- 1:nrow(mtcars) 
print(mtcars) 

使用$运营商用户不能访问它:

mtcars$test name 

但是你可以使用[[操作和列名作为字符串:

mtcars[['test name']] 

编辑

在很多列上调用glm对函数式编程和函数系列来说都是更多的话题。但这里有一个简单的例子,使用mtcarslm

# input is a named vector 
cols <- colnames(mtcars); names(cols) <- cols 
# regress mpg against every column in cols, store output in list 
regs <- lapply(
    cols, 
    function(x) lm(mtcars[['mpg']] ~ mtcars[[x]], data = mtcars) 
) 
# view two elements of output 
regs[['disp']] 
regs[['wt']] 
+0

感谢这并不工作,并再次解决case.But提到有104 columns.So有输入一个较短的方式将这些名字GLM它不是?理想的是按名称输入所有这些值。但列号应该很容易。但感谢您的帮助! :) – Prashanth

+0

@Prashanth我编辑的帖子包括一个例子。我建议阅读Hadley Wickham的_Advanced R_书中的函数式编程部分。 –

+0

okey.Thank你的帮助。我会在这本书中找到更多的细节。 – Prashanth