【发布时间】:2019-10-10 13:05:26
【问题描述】:
我正在编写一个多级回归模型,在第二级中,我从一个预测变量数据框(第一级的系数)和一个预测变量数据框开始。两个数据框具有相同数量的观察值。
我希望遍历预测变量(第一个数据帧中的列)并使用lm() 将它们与预测变量的整个第二个数据帧进行回归。但是,当我这样做时,我会收到一个我无法弄清楚的错误。
例子:
data(iris)
iris1 <- iris[-5] # remove the categories
iris2 <- iris[-5] * 6
for (col in names(iris1)) {
lm(iris1[col] ~ iris2)
}
## Error in model.frame.default(formula = iris1[col] ~ iris2, drop.unused.levels = TRUE) :
## invalid type (list) for variable 'iris1[col]'
我只是不明白这意味着什么,或者为什么 R 认为 iris1[col] 是 list。
为简单起见,我尝试将它们合并:
for (col in names(iris1)) {
tmp_df <- cbind(iris1[col], iris2)
colnames(tmp_df) <- letters[1:5] # to avoid duplicate names
lm(1 ~ ., tmp_df)
}
## Error in model.frame.default(formula = 1 ~ ., data = tmp_df, drop.unused.levels = TRUE) :
## variable lengths differ (found for 'a')
而这个特别令人沮丧,因为它们的长度显然相同。
【问题讨论】:
-
Formula with dynamic number of variables 的可能重复项,(动态创建公式)
标签: r multilevel-analysis