在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行
我想计算每个位置的平均每日步数,从步数开始。然后以一个名为city_avg_steps的TIBLE结束 预期产量在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
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))