2016-03-03 47 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