You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于多条件计算diary14数据集活动时长的均值与标准差

解决方案

你需要先按activity和day分组统计单日活动时长,再基于这些单日数据计算均值和标准差,具体代码如下:

1. 先统计每个活动在不同日期的时长

library(dplyr)

# 按活动类型+日期分组,计算每个组合的总时长(分钟)
activity_day_data <- diary14 %>%
  group_by(activity, day) %>%
  summarise(
    duration_min = n() * 10,  # 每个记录对应10分钟,数量×10得总分钟数
    .groups = "drop"          # 取消分组,得到扁平化的结果
  )

2. 计算每个活动的时长均值与标准差

基于上面的单日时长数据,再按activity分组汇总统计:

activity_stats <- activity_day_data %>%
  group_by(activity) %>%
  summarise(
    avg_duration = mean(duration_min),
    sd_duration = sd(duration_min),
    .groups = "drop"
  )

也可以一步完成,无需中间变量:

diary14 %>%
  group_by(activity, day) %>%
  summarise(duration_min = n() * 10, .groups = "drop_last") %>%
  summarise(
    avg_duration = mean(duration_min),
    sd_duration = sd(duration_min),
    .groups = "drop"
  )

额外优化:给日期添加可读性标签

如果需要让结果更直观,可以先把day的数字转换成对应的日期类型:

diary14 <- diary14 %>%
  mutate(day_label = case_when(
    day == 1 ~ "weekdays",
    day == 2 ~ "saturday",
    day == 3 ~ "sunday"
  ))

# 用标签分组统计
diary14 %>%
  group_by(activity, day_label) %>%
  summarise(duration_min = n() * 10, .groups = "drop_last") %>%
  summarise(
    avg_duration = mean(duration_min),
    sd_duration = sd(duration_min),
    .groups = "drop"
  )

内容的提问来源于stack exchange,提问作者Victoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:35:00