【问题标题】:Using dplyr to summarize a variable and calculate the mean of another dependent on other variables使用 dplyr 总结一个变量并计算另一个依赖于其他变量的平均值
【发布时间】:2020-11-04 16:41:25
【问题描述】:

在下面的数据集中,我想汇总分组_按城市和日期的租金,并另外计算分组按日期+城市的平均持续时间。

   date       rentals  City          duration  
   <date>       <dbl> <fct>            <drtn> 
 1 2014-01-01       1 Hamburg          15 mins
 2 2014-01-01       1 Hamburg          18 mins
 3 2014-01-01       1 Vienna          13 mins
 4 2014-01-02       1 Vienna           1 mins
 5 2014-01-02       1 Hamburg           8 mins
 6 2014-01-02       1 Berlin           4 mins
 7 2014-01-03       1 Hamburg          13 mins
 8 2014-01-03       1 Hamburg           2 mins
 9 2014-01-03       1 Berlin            4 mins
10 2014-01-04       1 Hamburg          17 mins
...

我想使用 dplyr 并尝试了以下方法:

df <- df %>%
  group_by(date, city) %>% 
  summarise((rentals=sum(rentals)), duration=mean(duration))

我最终只剩下一排汇总租金和平均总持续时间。它似乎只是忽略了我的 group_by 函数。

得到一些帮助会很棒:)

【问题讨论】:

  • 根据你的df,你的group_by需要大写City

标签: r dplyr


【解决方案1】:

我认为您只是没有正确大写City。这对我有用:

library(dplyr)

df <- read.table(text = "date       rentals  City          duration  
                 1 2014-01-01       1 Hamburg          15 
                 2 2014-01-01       1 Hamburg          18 
                 3 2014-01-01       1 Vienna          13 
                 4 2014-01-02       1 Vienna           1 
                 5 2014-01-02       1 Hamburg           8 
                 6 2014-01-02       1 Berlin           4 
                 7 2014-01-03       1 Hamburg          13 
                 8 2014-01-03       1 Hamburg           2 
                 9 2014-01-03       1 Berlin            4 
                 10 2014-01-04       1 Hamburg          17 ")

df2 <- df %>%
  group_by(date, City) %>% 
  summarise(rentals=sum(rentals), duration=mean(duration))

df2 输出:

# A tibble: 8 x 4
# Groups:   date [4]
  date       City    rentals duration
  <chr>      <chr>     <int>    <dbl>
1 2014-01-01 Hamburg       2     16.5
2 2014-01-01 Vienna        1     13  
3 2014-01-02 Berlin        1      4  
4 2014-01-02 Hamburg       1      8  
5 2014-01-02 Vienna        1      1  
6 2014-01-03 Berlin        1      4  
7 2014-01-03 Hamburg       2      7.5
8 2014-01-04 Hamburg       1     17  

【讨论】:

  • 谢谢。这不完全是我的问题,因为我将帖子的名称调整为更易于理解(初学者错误......)但是当我将您的代码复制到一个空白文件中时,它也对我有用。我能够找到错误:当我写“dplyr::summarise”时它起作用了!似乎我有一个覆盖这个函数的库,对吧?
  • 是的,你必须有另一个被 summarise '首选'的包。很高兴您找到了解决方法!
猜你喜欢
  • 2015-03-19
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 2021-02-03
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多