2

私は R でスパース マトリックスを作成しており、for ループで更新を記述しましたが、より高速にするためのポインターを取得したいと考えていました。コード例を次に示します。

library(Matrix)

rowId <- rep(c(101:105), 2)
colId <- rep(c("A", "B"), 5)
count <- 1:10

data <- data.frame(as.character(rowId), colId, count)
names(data) <- c("rowId", "colId", "count")

sparse <- Matrix(nrow = 5, ncol=2, byrow=TRUE, 
                  dimnames = list(unique(rowId), unique(colId)))

for (i in 1:nrow(data)) {
  sparse[data$rowId[i], data$colId[i]] <- data$count[i]
}

疎行列を更新するより良い方法はありますか? 私の現実の問題では、データには約 100 万の観測があり、スパースは 25000x38242 であり、順次実行するには数時間かかります。

ありがとう

スチュアート

4

2 に答える 2