我正在运行一个包含 8 个响应和 12 个预测变量的循环,因此我得到的结果矩阵由 96 个未标记的行组成。有没有一种方法可以让 R 根据插入模型的响应和预测器自动为我标记这些行,而无需自己列出每个组合?这是我一直在使用的代码示例:
set.seed(0)
set.seed(1)
dat <- gamSim(1,n=100,scale=2)
dat2 <- gamSim(1,n=100,scale=2)
names(dat2)[1:5]<-c("y1", paste0("x", 4:7))
d<-cbind(dat[, 1:5], dat2[, 1:5])
resp <- d[ c("y", "y1")]
pred <- d[, !(colnames(d) %in% c("y", "y1"))]
results<- vector("list", length=ncol(resp)*ncol(pred))
dim(results) <- c(ncol(resp), ncol(pred))
for(i in 1:ncol(resp)){
for(j in 1:ncol(pred)){
results[i, j][[1]] <- gamm(resp[, i] ~ s(pred[, j]))
}
}
resultsl <- do.call("list", results)
pspline<-sapply(resultsl, function(l) summary(l$lme)$tTable[,5])
pspline2<-plyr::ldply(pspline, rbind)
pspline2
1 6.949984e-39
2 7.174833e-01
3 1.665304e-40
4 4.928242e-01
....
我希望这些行自动标记为“y0-xo”、“y1-xo”、“yo-x1”、“y1-x1”...等,或者以任何方式明确哪个响应和预测器该行是指。在运行循环之前,我在结果矩阵中尝试了不同的 dimnames 和 rownames 迭代,但无法使其工作。有任何想法吗?