我有一个数据表“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:sum(da)=12+14=26 g1 小时 2:sum(da)=19+15=34
因此,对于 g1 和 da,答案是 2 小时和 34 小时。
我在 for 循环中使用 for 循环来执行此操作,但这需要很长时间(几个小时后我中断了)。问题是.data 大约有 100.000 行长,并且大约有 5.000 个组,每个组有 2-50 个仪器。
有什么好的方法可以做到这一点?
衷心感谢 Stack-overflow 的所有贡献者。
更新:现在示例中只有五个组。
/克里斯