我有一个具有以下结构的数据框:
> t <- read.csv("combinedData.csv")[,1:7]
> str(t)
'data.frame': 699 obs. of 7 variables:
$ Awns : int 0 0 0 0 0 0 0 0 1 0 ...
$ Funnel : Factor w/ 213 levels "MEL001","MEL002",..: 1 1 2 2 2 3 4 4 4 4 ...
$ Plant : int 1 2 1 3 8 1 1 2 3 5 ...
$ Line : Factor w/ 8 levels "a","b","c","cA",..: 2 2 1 1 1 3 1 1 1 1 ...
$ X : int 1 2 3 4 7 8 9 10 11 12 ...
$ ID : Factor w/ 699 levels "MEL_001-1b","MEL_001-2b",..: 1 2 3 4 5 6 7 8 9 10 ...
$ BobWhite_c10082_241: int 2 2 2 2 2 2 0 2 2 0 ...
我希望构建一个混合效应模型。在我的数据框中,我知道想要包含的随机效应(漏斗)是一个因素,但它不起作用:
> lmer(t$Awns ~ (1|t$Funnel) + t$BobWhite_c10082_241)
Error: couldn't evaluate grouping factor t$Funnel within model frame: try adding grouping factor to data frame explicitly if possible
实际上,无论我想将什么作为随机效应(例如植物),都会发生这种情况:
> lmer(t$Awns ~ (1|t$Plant) + t$BobWhite_c10082_241)
Error: couldn't evaluate grouping factor t$Plant within model frame: try adding grouping factor to data frame explicitly if possible
为什么R会给我这个错误?我通过谷歌搜索得到的唯一答案是随机因素在DF中不是一个因子。但是,如str所示,df $ Funnel肯定是一个因子。
data
参数:lmer(Awns ~ (1|Funnel) + BobWhite_c10082_241, data = t)
。如果你不遵循这个惯例(在其他模型函数如lm
中也是如此),会发生奇怪的事情。 - Roland