1

私はしばしば、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に非常に慣れていません。これが、問題に対するよく知られた(よりスマートな)解決策がある十分に一般的なパターンであることを望んでいました。

ヘルプ/ポインターをいただければ幸いです。

4

1 に答える 1