私はしばしば、2 つの異なるシナリオ/テスト/期間の下でパーセンテージの変化を測定しようとしています。
データセットの例:
library(dplyr)
set.seed(11)
toy_dat <- data.frame(state = sample(state.name,3, replace=F),
experiment=c('control','measure'),
accuracy=sample(30:50, size=6, replace=T),
speed=sample(21:39, size=6, replace=T)) %>% arrange(state)
state experiment accuracy speed
1 Alabama measure 31 24
2 Alabama control 36 37
3 Indiana control 30 23
4 Indiana measure 31 38
5 Missouri control 50 29
6 Missouri measure 48 34
次に、次のような恐ろしいことを書きます。
result <- toy_dat %>% group_by(state) %>% arrange(experiment) %>%
summarise(acc_delta = (accuracy[2]-accuracy[1])/accuracy[1],
speed_delta = (speed[2]-speed[1])/speed[1])
ただし、上記のソリューションは、測定可能な数が増え始めるとまったく拡張できません。さらに、コードは順序に関して非常に脆弱です。
私はRに非常に慣れていません。これが、問題に対するよく知られた(よりスマートな)解決策がある十分に一般的なパターンであることを望んでいました。
ヘルプ/ポインターをいただければ幸いです。