【发布时间】:2020-05-20 06:20:33
【问题描述】:
我希望在 R 中进行线性回归,以模拟 5 个自变量对 376 列数据的影响。
我有一个名为“dd”的大型矩阵(541 行和 402 列),我只想将矩阵中的某些列作为回归中的 IV 和 DV 插入。从 dd 开始,我想要 376 个特定的列来形成我的 DV 和 5 个列来形成我的 IV。我使用每列的名称(例如“column_42”)作为索引,分别用于 IV 和 DV:
IVind=paste0('column_',c(4,14,15,24,43)) #index for IV
DVind=paste0('column_',c(10:13, 17:18, 26, 28, 49:54, 58, 60, 1001:1180, 2001:2180)) #index for DV
IV <-(dd[,IVind]) #save independent variables in 'IV'
DV <-(dd[,DVind]) #save independent variables in 'DV'
我尝试将 IV 和 DV 插入线性回归,如下所示:
try <- lm(DV~IV)
但收到以下错误:[[<-.data.frame(*tmp*, i, value = c(2113L, 2031L, 1971L, :
替换有203040行,数据有540
无论如何我可以解决这个错误吗?我知道这可能是因为我的 IV 和 DV 保存在不同的矩阵中?
我尝试在回归函数中直接索引 dd:
lm(dd[,DVind]~dd[,IVind])
只会收到同样的错误。
非常感谢任何帮助,谢谢!
【问题讨论】:
-
您的任何值是否嵌套?你能做 str(dd[,DVind]) 吗?
-
好像没有? str(dd[,DVind]) 的输出是 chr [1:541, 1:376] NA "10443.250768" "10433.625258" ... - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:376] "NZMean_10" "NZMean_11" "NZMean_12" "NZMean_13" ...
标签: r indexing regression lm