0

我有以下非常简单的循环操作,我需要从 1 循环到 50,000。虽然循环很简单,但它在 R 中非常慢,所以我想知道是否有任何操作可以使它更快,但我不喜欢并行解决方案,因为我的计算机只有 2 个处理器,

full3 = fullData
for(i in 1:dim(fullData)[1]) {
  full3[i,923] <- sum(as.numeric(full3[i, 879:912]))
  print(i)
}
4

1 回答 1

4

您应该为此使用矢量化rowSums操作:

full3 <- fullData
# a[, b] selects the entire column 'b' from data.frame 'a'
full3[, 923] <- rowSums(as.numeric(full3[, 879:912]))

应该这样做。rowSums,好吧,计算 subset'd 的每一行的总和data.frame full3[, 879:912]。此结果存储回第 923 列

于 2013-04-08T12:04:53.350 回答