-1

我会试着这样说:

我在做一笔:

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] 
}

这是行不通的。

有什么建议吗?谢谢。

4

1 回答 1

2

我只能猜到你的问题。(您忘记了错误消息。)恕我直言,它不起作用,因为它属于数字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]
于 2012-07-10T14:40:46.810 回答