データテーブル「the.data」があります。最初の列は測定器を示し、残りは異なる測定データを示します。
instrument <- c(1,2,3,4,5,1,2,3,4,5)
hour <- c(1,1,1,1,1,2,2,2,2,2)
da <- c(12,14,11,14,10,19,15,16,13,11)
db <- c(21,23,22,29,28,26,24,27,26,22)
the.data <- data.frame(instrument,hour,da,db)
また、インストゥルメントのグループも定義しました。たとえば、グループ 1 (g1) はインストゥルメント 1 と 2 を指します。
g1 <- c(1,2)
g2 <- c(4,3,1)
g3 <- c(1,5,2)
g4 <- c(2,4)
g5 <- c(5,3,1,2,6)
groups <- c("g1","g2","g3","g4","g5")
各グループの合計がデータ型ごとに最大になる時間とその合計を調べる必要があります。
g1 時間 1: 合計 (da)=12+14=26 g1 時間 2: 合計 (da)=19+15=34
したがって、g1 と da の場合、答えは時間 2 と値 34 です。
forループ内のforループでこれを行いましたが、時間がかかりすぎます(数時間後に中断しました)。問題は、the.data の長さが約 100.000 行であり、それぞれ 2 ~ 50 のインストゥルメントを持つ約 5.000 のグループがあることです。
これを行うための良い方法は何ですか?
Stack-overflow へのすべての貢献者に心から感謝します。
更新: 例では 5 つのグループのみになりました。
/クリス