列名称中的符号

时间:2016-03-03 16:57:10

标签: r prediction glm

我设法为我想要制作的预测生成一组功能但暂停尝试应用模型,因为我在列名中有一些特殊的字符,如:

> 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

当我尝试使用以下方法运行模型时:

#include <unistd.h>       // declare a whole bunch of identifiers you never use

void    ft_ft(int *nbr)   // declare the identifiers ft_ft, and nbr
                          // ft_ft scope is the whole file from this point onwards
                          // nbr's scope is the ft_ft function
{
int a;                    // declare the identifier a
                          // a's scope is from here to the end of the function at the next }
*nbr = a;                 // use nbr and a
}
int main()                // declare the identifier main with scope to the end of the file
{
ft_ft(*nbr);              // use the declared identifier ft_ft
                          // with an undeclared nbr
return 0;
}

两者都失败了。不知道这里的错误是什么?
感谢任何帮助。
谢谢!

1 个答案:

答案 0 :(得分: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']]了。

我们假设您有一个名为&#34;测试名称&#34;的列:

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']]