【问题标题】:Getting average/mean over a set number of days in R在 R 中获取一组天数的平均值/平均值
【发布时间】:2016-10-15 08:36:18
【问题描述】:

假设我有这个数据框

Date           DayOfWeek    Url    Hits
09/01/2016     Thursday     url1   3
09/01/2016     Thursday     url2   5
09/01/2016     Thursday     url3   4
09/02/2016     Friday       url1   7
09/02/2016     Friday       url3   6
09/03/2016     Saturday     url2   9
09/03/2016     Saturday     url1   5
09/04/2016     Sunday       url2   6
09/07/2016     Wednesday    url10  4
09/07/2016     Thursday     url2   3
09/07/2016     Thursday     url4   2
09/07/2016     Thursday     url5   3
09/07/2016     Thursday     url1   3
09/08/2016     Friday     url1   3
09/08/2016     Friday     url4   3
09/08/2016     Friday     url5   2
09/08/2016     Friday     url8   6
09/09/2016     Saturday     url2   1
09/09/2016     Saturday     url3   2
09/09/2016     Saturday     url5   4
09/09/2016     Saturday     url1   8
09/14/2016     Thursday     url1   3
09/147/2016     Thursday     url2   2
09/14/2016     Thursday     url3   3

我想根据访问的唯一 url 的数量获得一周中最繁忙的一天。例如,在数据框中有 3 个星期四,第一个星期四访问了 3 个唯一 url,第二个星期四有 4 个,最后一个星期四有 3 个......我打算做的是,总 urls 的数量 = 3 + 4 + 3/ (# of thursdays = 3) = 当天唯一网址的平均数量....

对于星期五,第一个是 2 个 url,第二个是 4 个,计算将是 2 + 4 / 数据集中的星期五数 = 2

我正在尝试通过 dplyr 解决此问题。我正在尝试使用 group_by,但我似乎无法确定正确的功能组合来达到我的需要。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    我们为每个“日期”和“DayOfWeek”(n_distinct)获取不同的“Url”(“N”)数量,并为每个“DayofWeek”获取“N”的mean

    library(dplyr)
    df1 %>% 
        group_by(Date, DayOfWeek) %>%
        summarise(N = n_distinct(Url)) %>% 
        group_by(DayOfWeek) %>% 
        summarise(N = mean(N))
    # DayOfWeek        N
    #      <chr>    <dbl>
    #1    Friday 3.000000
    #2  Saturday 3.000000
    #3    Sunday 1.000000
    #4  Thursday 3.333333
    #5 Wednesday 1.000000
    

    【讨论】:

    • 第一个group_by 中的DayOfWeek 可能是多余的?无论如何,Date 不会解决这个问题吗?
    • @rosscova 如果我们不使用 `DayOfWeek',它将获得整个 'Thursday' 的 'unique' 'Url' 的长度。我猜 OP 想单独执行此操作
    • @rosscova 我认为你是对的,但我们不会获得“DayOfWeek”信息
    • 好的,那只是为了确保DayOfWeek 列被带到下一步呢?
    • @rosscova 否则我可能不得不求助于mutate
    猜你喜欢
    • 2019-01-14
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多