如何将值除以另一因子变量的行数

时间:2019-02-27 20:40:01

标签: r

我有以下数据:

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 :(得分:3)

您很亲密:

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

..其中n()等于组的长度。