Как разделить значение в строке на количество строк другой факторной переменной - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть следующие данные:

ID  Value
1   3
1   4
1   2
1   6
1   7
1   3
1   5
1   6
2   9
2   5
2   7
2   3
2   5
2   8
2   4
2   8
3   4
3   9
3   5
3   5
3   5
3   8

Мне нужно разделить каждый элемент в переменной Value на количество строк каждого уровня переменной ID и назвать его Normalized

Ожидаемый результат:

ID  Value   Normalized
1   3   0.375
1   4   0.5
1   2   0.25
1   6   0.75
1   7   0.875
1   3   0.375
1   5   0.625
1   6   0.75
2   9   1.125
2   5   0.625
2   7   0.875
2   3   0.375
2   5   0.625
2   8   1
2   4   0.5
2   8   1.142857143
3   4   0.666666667
3   9   1.8
3   5   1.25
3   5   1.666666667
3   5   2.5
3   8   8

Код, который я пробовал:

data %>% group_by(ID) %>% mutate(Normalized=Value/nrow(ID))

1 Ответ

0 голосов
/ 27 февраля 2019

Вы были близки:

data %>% group_by(ID) %>% mutate(Normalized = Value / n())

.. где n() равно длине группы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...