我有以下非常简单的循环操作,我需要从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)
}
答案 0 :(得分:4)
您应该使用向量化rowSums
操作:
full3 <- fullData
# a[, b] selects the entire column 'b' from data.frame 'a'
full3[, 923] <- rowSums(as.numeric(full3[, 879:912]))
应该这样做。 rowSums
,好吧,计算子集data.frame
full3[, 879:912]
的每一行的总和。该结果存储在第923列