在r中按组创建变量

时间:2017-11-13 15:29:37

标签: r

我试图按组计算一行的百分比,但我似乎没有得到它。

数据

df = data.frame(ID = c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 4L), 
            ID_name = c("AA", "AA", "BB", "BB", "CC", "CC", "DD", "DD", "DD"), 
            Volume = c(10L, 20L, 30L, 50L, 50L, 40L, 20L, 30L, 10L))

我希望它创建一个新列(Percentage),它将按ID计算音量比例

理想数据将如下所示(对于所有ID,但现在我只显示ID = 1)

ID  ID_Name  Volume  Percentage
1    AA       10       0.33
1    AA       20       0.67

我尝试了这段代码,但它似乎无法正常工作

df %>%
  group_by(ID) %>%
  mutate(PercVol = Volume/sum(Volume))

代码输出:

     ID     ID_name Volume    PercVol
     (int)  (fctr)  (int)     (dbl)
1     1      AA     10        0.03846154
2     1      AA     20        0.07692308
3     2      BB     30        0.11538462
4     2      BB     50        0.19230769
5     3      CC     50        0.19230769
6     3      CC     40        0.15384615
7     4      DD     20        0.07692308
8     4      DD     30        0.11538462
9     4      DD     10        0.03846154

0 个答案:

没有答案