我会试着这样说:
我在做一笔:
tot <- fac$a[,1]+fac$b[,1]
其中 a 和 b 是因子,1 是第一列。直到这里都很好。
现在我想使用 for 循环来对所有列进行求和:
tot <- 0
for (i in 5:13) {
tot[,i] <- fac$a[,i]+fac$b[,i]
}
这是行不通的。
有什么建议吗?谢谢。
我只能猜到你的问题。(您忘记了错误消息。)恕我直言,它不起作用,因为它属于数字tot
类且没有矩阵(并且没有列,也没有任何可以通过 index 访问的行)。i
要修复您的代码:tot <- matrix(ncol=ncol(fac$a), nrow=nrow(fac$b))
顺便说一句,您不应该使用for 循环进行这种计算。改用矢量化:
a <- matrix(10, ncol=13, nrow=10)
b <- matrix(20, ncol=13, nrow=10)
tot <- a[, 5:13] + b[, 5:13]