我设法为我想要制作的预测生成一组功能但暂停尝试应用模型,因为我在列名中有一些特殊的字符,如:
> 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;
}
两者都失败了。不知道这里的错误是什么?
感谢任何帮助。
谢谢!
答案 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
函数族的主题。但是,这是一个使用mtcars
和lm
:
# 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']]