我在R .my数据(年轻)中使用了带有多个变量的广义线性模型,如下所示,我有5个DVS(dv1,dv2,dv3,dv4,dv5)和3个IVS(IV1,IV2,IV3)数据框。我一直得到下面的错误,请问有人回答,我做错了。
> head(young)
IV1 IV2 IV3 DVS
1 18 1 1 dv1
2 20 1 1 dv1
3 21 2 1 dv1
4 21 1 2 dv1
5 22 1 1 dv1
6 22 1 1 dv1
> models <- list()
> dvnames <- paste("DVS", 1:5, sep='')
> ivnames <- paste("IV", 1:3, sep='') ## for some value of 3
> for (y in dvnames){
+ form <- formula(paste(y, "~", ivnames))
+ models[[y]] <- glm(form, data=young, family='poisson') }
**Error in eval(expr, envir, enclos) : object 'DVS1' not found**
答案 0 :(得分:1)
很容易理解为什么会出现错误。循环第一次迭代时,y
取值DVS1
。在模型公式中,R将在young
中查找名为DVS1
的变量。正如您向我们展示的那样,没有带有该名称的变量(列)(也可能是glm()
范围内的对象),因此
**Error in eval(expr, envir, enclos) : object 'DVS1' not found**
这是完全正确的。
现在更重要的问题变成了,你想做什么?您似乎适合泊松模型,但您声称响应变量位于单个列DVS
中,其中R将作为因子变量处理。您希望在IV1
,IV2
和IV3
的某个函数中建模的计数数据在哪里?
R期望提供的东西可以解释为公式左侧的数字计数(您放置y
)。