Вероятно, дубликат, но я не смог найти простое создание экземпляра этого вопроса.
У меня есть фрейм данных, DF
:
Event ID Objective.Bi Subjective.Bi Confidence Outcome Conf.Bin
1 1 0 0 80 Correct 80-89
2 2 0 1 50 Incorrect 50-59
3 3 0 1 60 Incorrect 60-69
4 4 NA 0 80 <NA> 80-89
5 5 0 1 30 Incorrect 30-39
6 6 0 0 60 Correct 60-69
7 7 1 0 80 Incorrect 80-89
8 8 0 0 10 Correct 10-19
9 9 1 0 10 Incorrect 10-19
10 10 0 0 50 Correct 50-59
11 11 1 1 90 Correct 90-100
12 12 0 1 50 Incorrect 50-59
13 13 1 0 80 Incorrect 80-89
14 14 0 0 50 Correct 50-59
15 15 1 1 10 Correct 10-19
16 16 1 1 20 Correct 20-29
17 17 1 0 80 Incorrect 80-89
18 18 1 1 50 Correct 50-59
19 19 1 1 20 Correct 20-29
20 20 1 1 99 Correct 90-100
21 21 1 0 90 Incorrect 90-100
22 22 0 0 90 Correct 90-100
23 23 NA 1 10 <NA> 10-19
24 24 1 0 20 Incorrect 20-29
25 25 0 0 80 Correct 80-89
26 26 0 0 80 Correct 80-89
27 27 0 0 50 Correct 50-59
28 28 0 0 50 Correct 50-59
29 29 NA 1 60 <NA> 60-69
30 30 1 1 70 Correct 70-79
Я хочу сгруппироватьданные по переменной Conf.Bin
, а затем рассчитайте долю значений Correct
Outcome
в каждой группе (т. е. %.Correct
= количество правильных результатов в группе / количество наблюдений в группе). Например, мой желаемый результат будет выглядеть следующим образом:
Conf.Bin %.Correct
1 10-19 50.0
2 20-29 66.7
3 30-39 00.0
...
Какой самый простой способ сделать это? Я использовал group_by
из dplyr
в прошлом, но не уверен, как применить этот ручной расчет к каждой группе для получения желаемого результата.