列名中的符号

Symbols in Column Names

我设法为我想做的预测生成了一组特征,但停止尝试应用该模型,因为我的列名称中有一些特殊字符,例如:

[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

两者都fail.Any这里有什么错误的线索?
感谢任何帮助。
谢谢!

对于这部分:

> 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"

如果有 space,则无法使用 $ 运算符访问对象。我建议使用 [[ 运算符和一个字符串作为 gg3$Puu-ja köögivili 的列名称,因此您可以改用 gg3[['Puu-ja köögivili']]

假设您有一个名为 "test name":

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

您无法使用 $ 运算符访问它:

mtcars$test name

但您可以使用 [[ 运算符和列名作为字符串:

mtcars[['test name']]

编辑

在许多列上调用 glm 更像是函数式编程和 apply 函数族的主题。但这是一个简单的例子,使用 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']]