【发布时间】:2020-01-28 00:31:48
【问题描述】:
我正在尝试遍历 R 中的对象。
myfunc.linear.pred <- function(x){
linear.pred <- predict(object = x)
w <- exp(linear.pred)/(1+exp(linear.pred))
as.vector(w)
}
这里的功能可以正常工作。它返回一个 48 行的向量,它来自对象 x。现在“x”不过是 GLM 函数的完整回归模型(想想:mod.fit <- glm (dep~indep, data = data))。问题是我有 20 个不同的此类('mod.fit')对象,需要为每个对象找到预测。我可以从字面上重复代码,但我正在寻找一个更简洁的解决方案。所以我想要的是一个 48 行 20 列的矩阵,用于上述函数。这对于高级用户来说可能是基本的,但我只对数字使用过“apply”和“for”循环,从不使用对象。我查看了 lapply 但无法弄清楚。
我试过了:(这可能是愚蠢的)
allmodels <- c(mod.fit, mod.fit2, mod.fit3)
lpred.matrix <- matrix(data=NA, nrow=48, ncol=20)
for(i in allmodels){
lpred.matrix[i,] <- myfunc.linear.pred(i)
}
这显然行不通,因为allmodels 有一个“列表”类,它包含来自 GLM 函数的所有内容。希望有人可以提供帮助。谢谢!
【问题讨论】:
-
试试
sapply(allmodels, myfunc.linear.pred) -
lpred.matrix中的索引是不是放错地方了?我认为应该是lpred.matrix[,i],因为您正在填写该列。
标签: r