2016-11-08 68 views
0

个我有一个队列保留数据帧获取队列一天DAYCOUNT

> cohortData 
      cohort dayCount count 
    1 25/10/2016  0 238 
    2 25/10/2016  1 137 
    3 25/10/2016  2 78 
    4 25/10/2016  3 32 
    5 25/10/2016  4 21 
    6 25/10/2016  5 25 
    7 26/10/2016  0 134 
    8 26/10/2016  1 97 
    9 26/10/2016  2 49 
    10 26/10/2016  3 22 
    11 26/10/2016  4 22 
    12 27/10/2016  0 136 
    13 27/10/2016  1 88 
    14 27/10/2016  2 38 
    15 27/10/2016  3 15 
    16 28/10/2016  0 138 
    17 28/10/2016  1 25 
    18 28/10/2016  2 19 
    19 29/10/2016  0 144 
    20 29/10/2016  1 28 
    21 30/10/2016  0 135 

我想要做的就是添加一个百分比列得到计数的%反对的队列0,这样每个队列和DAYCOUNT 25/10/2016 dayCount 0到2的百分比值为238/238,137/238,78/238。

我看了table.prop,但无法得到我想要的结果,我曾尝试做一个cohortData$count/(by=list(cohortData$cohort, cohortData$dayCount==0))但这是不正确的,只是给出错误。

我可以将数据转换为NxN矩阵,获得第二个矩阵来查找%值,然后将其取消并与上面的数据框结合回来,但我确信应该有一个更简单和更优雅的方法它> <

回答

0

一个dplyr的解决办法是这种方法:

library(dplyr) 

cohortData %>% 
    group_by(cohort) %>% 
    mutate(percentage = count/count[dayCount == 0]) 
#  cohort dayCount count percentage 
#  <fctr> <int> <int>  <dbl> 
#1 25/10/2016  0 238 1.00000000 
#2 25/10/2016  1 137 0.57563025 
#3 25/10/2016  2 78 0.32773109 
#4 25/10/2016  3 32 0.13445378 
#5 25/10/2016  4 21 0.08823529 
#6 25/10/2016  5 25 0.10504202 
#7 26/10/2016  0 134 1.00000000 
#8 26/10/2016  1 97 0.72388060 
#9 26/10/2016  2 49 0.36567164 
#10 26/10/2016  3 22 0.16417910 
## ... with 11 more rows 
+0

我必须是运行此代码犯规表明什么傻事,只是要求更多的投入,改变DF到cohortData什么都不做,以及:/ 编辑:好吧,我站在纠正!缺少a)和df名称,谢谢 – user3674993