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、まあ、サブセットの各行の合計を計算しますdata.frame full3[, 879:912]。この結果は列 923 に格納されます。

于 2013-04-08T12:04:53.350 に答える