我有以下数据:
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))
答案 0 :(得分:3)
您很亲密:
data %>% group_by(ID) %>% mutate(Normalized = Value / n())
..其中n()
等于组的长度。