R中多个值组的百分位数

时间:2017-02-07 04:39:19

标签: r

我使用R进行数据分析。 我正在寻找代码来实现下面提到的输出。

我需要一段代码来完成这项工作,因为我有500多个团队和我的实际数据是24个月。以下样本只有2组& 2个月。

这是我的数据样本。

Date    Group   Value
1-Jan-16    A   10
2-Jan-16    A   12
3-Jan-16    A   17
4-Jan-16    A   20
5-Jan-16    A   12
5-Jan-16    B   56
1-Jan-16    B   78
15-Jan-16   B   97
20-Jan-16   B   77
21-Jan-16   B   86
2-Feb-16    A   91
2-Feb-16    A   44
3-Feb-16    A   93
4-Feb-16    A   87
5-Feb-16    A   52
5-Feb-16    B   68
1-Feb-16    B   45
15-Feb-16   B   100
20-Feb-16   B   81
21-Feb-16   B   74

这是我正在寻找的输出。

Month   Year    Group   Minimum Value   5th Percentile  10th Percentile 50th Percentile 90th Percentile Max Value
Jan 2016    A                       
Jan 2016    B                       
Feb 2016    A                       
Feb 2016    B       

1 个答案:

答案 0 :(得分:0)

考虑dft作为您的输入,您可以尝试:

library(dplyr)
dft %>% 
  mutate(Date = as.Date(Date, format = "%d-%b-%y")) %>%
  mutate(mon = month(Date),
         yr = year(Date)) %>%
  group_by(mon,yr,Group) %>%
  mutate(minimum = min(Value),
         maximum = max(Value),
         q95 = quantile(Value, 0.95)) %>%
  select(minimum, maximum, q95) %>%
  unique()

给出:

    mon    yr Group minimum maximum   q95
  <int> <int> <chr>   <int>   <int> <dbl>
1     1  2016     A      10      20  19.4
2     1  2016     B      56      97  94.8
3     2  2016     A      44      93  92.6
4     2  2016     B      45     100  96.2

并根据需要添加更多变量。