在r中使用两个摘要函数 库(lubridate) 图书馆(tidyverse) 步骤\u计数\u原始% 变异(位置=替换(位置,“墨尔本”)) 步进计数 #>#A tibble:5448 x 4 #>日期\时间日期计数位置 #> #>2019-01-01 09:00:00 2019-01-01 764墨尔本 #>2 2019-01-01 10:00:00 2019-01-01 913墨尔本 #>3 2019-01-02 00:00:00 2019-01-02 9墨尔本 #>4 2019-01-02 10:00:00 2019-01-02 2910墨尔本 #>5 2019-01-02 11:00:00 2019-01-02 1390墨尔本 #>6 2019-01-02 12:00:00 2019-01-02 1020墨尔本 #>7 2019-01-02 13:00:00 2019-01-02 472墨尔本 #>8 2019-01-02 15:00:00 2019-01-02 1220墨尔本 #>9 2019-01-02 16:00:00 2019-01-02 1670墨尔本 #>10 2019-01-02 17:00:00 2019-01-02 1390墨尔本 #>#…还有5438行

在r中使用两个摘要函数 库(lubridate) 图书馆(tidyverse) 步骤\u计数\u原始% 变异(位置=替换(位置,“墨尔本”)) 步进计数 #>#A tibble:5448 x 4 #>日期\时间日期计数位置 #> #>2019-01-01 09:00:00 2019-01-01 764墨尔本 #>2 2019-01-01 10:00:00 2019-01-01 913墨尔本 #>3 2019-01-02 00:00:00 2019-01-02 9墨尔本 #>4 2019-01-02 10:00:00 2019-01-02 2910墨尔本 #>5 2019-01-02 11:00:00 2019-01-02 1390墨尔本 #>6 2019-01-02 12:00:00 2019-01-02 1020墨尔本 #>7 2019-01-02 13:00:00 2019-01-02 472墨尔本 #>8 2019-01-02 15:00:00 2019-01-02 1220墨尔本 #>9 2019-01-02 16:00:00 2019-01-02 1670墨尔本 #>10 2019-01-02 17:00:00 2019-01-02 1390墨尔本 #>#…还有5438行,r,R,我想计算每个位置的平均每日步数,从步数开始。然后以一个名为city_avg_steps的TIBLE结束 预期产量 library(lubridate) library(tidyverse) step_count_raw <- read_csv("data/step-count/step-count.csv", locale = locale(tz = "Australia/Melbourne")) location <- read_c

我想计算每个位置的平均每日步数,从步数开始。然后以一个名为city_avg_steps的TIBLE结束

预期产量

 library(lubridate)
 library(tidyverse)
 step_count_raw <- read_csv("data/step-count/step-count.csv",
 locale = locale(tz = "Australia/Melbourne"))
 location <- read_csv("data/step-count/location.csv")
 step_count <- step_count_raw %>% 
 rename_with(~ c("date_time", "date", "count")) %>% 
 left_join(location) %>% 
 mutate(location = replace_na(location, "Melbourne"))
 step_count

 #> # A tibble: 5,448 x 4
 #>    date_time           date       count location 
 #>    <dttm>              <date>     <dbl> <chr>    
 #>  1 2019-01-01 09:00:00 2019-01-01   764 Melbourne
 #>  2 2019-01-01 10:00:00 2019-01-01   913 Melbourne
 #>  3 2019-01-02 00:00:00 2019-01-02     9 Melbourne
 #>  4 2019-01-02 10:00:00 2019-01-02  2910 Melbourne
 #>  5 2019-01-02 11:00:00 2019-01-02  1390 Melbourne
 #>  6 2019-01-02 12:00:00 2019-01-02  1020 Melbourne
 #>  7 2019-01-02 13:00:00 2019-01-02   472 Melbourne
 #>  8 2019-01-02 15:00:00 2019-01-02  1220 Melbourne
 #>  9 2019-01-02 16:00:00 2019-01-02  1670 Melbourne
 #> 10 2019-01-02 17:00:00 2019-01-02  1390 Melbourne
 #> # … with 5,438 more rows
#>#tible:4 x 2
#>位置平均计数
#>                
#>1奥斯汀7738。
#>2丹佛12738。
#>3墨尔本7912。
旧金山>4,13990。
我的代码和输出

 #> # A tibble: 4 x 2
 #>   location      avg_count
 #>   <chr>             <dbl>
 #> 1 Austin            7738.
 #> 2 Denver           12738.
 #> 3 Melbourne         7912.
 #> 4 San Francisco    13990.
city_avg_steps%group_by(location)%%>%summary(avg_count=mean(count))
城市平均步幅
#一个tibble:4x2
位置平均计数
奥斯汀721。
2丹佛650。
3墨尔本530。
4旧金山654。

我有一个线索是,首先计算每日数,然后使用两个总结函数累积结果,但不确定如何添加。

正如@dash2在评论中解释的那样,根据我们从所需输出中了解的情况,它需要两个阶段的聚合,一个阶段聚合每天的步骤数(使用
sum
将它们相加),另一种方法是使用
mean
将不同的天数聚合到位置级别的平均值中

  city_avg_steps <- step_count%>%group_by(location)%>%summarise(avg_count=mean(count))
  city_avg_steps
  
  # A tibble: 4 x 2
  location      avg_count
  <chr>             <dbl>
  1 Austin             721.
  2 Denver             650.
  3 Melbourne          530.
  4 San Francisco      654.

执行
分组依据(地点、日期)%>%summary(步骤=总和(计数))
。这将获得每个地点每天的总步骤数。使用现代dplyr,它还将自动剥离一级分组。因此,您只需执行
汇总(平均计数=平均(步骤))
。它给出了tibble:1 x 1。因此,请检查分组,如果需要手动重新分组,它会给出4个相同的数字。您需要显示代码。您应该解释您的解决方案,只有代码的答案可能会被否决或标记为修订。
step_count %>% 
  group_by(date, location) %>% 
  summarise(sum_steps = sum(count, na.rm = TRUE)) %>% 
  ungroup %>% 
  group_by(date) %>%
  summarise(avg_steps = mean(sum_steps, na.rm = TRUE))