Я пытаюсь выполнить некоторое обобщение данных с помощью R и dplyr. Мой кадр данных имеет множество строк следующего вида:Вычисление коэффициентов групп в dplyr на основе значений из других строк
color year score
<fctr> <int> <int>
У меня есть такое же количество строк в год для каждого из N различных цветов. Для каждого из них у меня есть оценка. Внутри каждого цвета (группы) я хотел бы вычислить отношение всех баллов к одному конкретному году. Например:
color year score
<fctr> <int> <int>
1 blue 1980 43
2 blue 1982 13
3 red 1980 330
4 red 1998 89
Я хотел бы, чтобы увеличить этот кадр с новым колонка под названием «отношение», который является частным от деления балла каждой строки в каждой цветовой группе (например, синей или красной) и оценкой из строки с фиксированным годом 1980. Например:
color year score ratio
<fctr> <int> <int>
1 blue 1980 43 1
2 blue 1982 13 0.302325581
3 red 1980 330 1
4 red 1998 89 0.269696969
Я знаю, как использовать mutate
и summarize
, но это мне не ясно, как выбрать из значения оценки для данной строки, которая соответствует определенной (в этом случае строка с 1980 годом (из которой мы гарантируем только одну)) внутри каждой группы.
Что такое чистый способ сделать это? комментарий
Попробуйте 'df1%>% group_by (color)%>% mutate (ratio = score/score [1])' или если значение 'year' изменяется для каждого 'color', тогда 'mutate (ratio = score/оценка [год == 1980]) ' – akrun
@akrun это отлично работает. Спасибо! – Kulluk007
Нет проблем, рад помочь вам. Я предполагаю, что будут какие-то ссылки на обман. – akrun