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

如何将R语言宽格式数据集转换为含每日访问量的长格式表

简洁实现R数据框从宽格式到长日期-访问量格式的转换

针对你提供的数据集(每行对应一周起始日期,visits列以字符串存储每日访问量),可以用tidyverse工具链快速完成转换,无需冗长代码:

完整代码

library(tidyverse)

# 原始数据构造
week <- seq(as.Date("2022-9-1"), as.Date("2022-10-1"), by = "weeks")
visits <- c("[1,2,6,4,6,11,19]", "[12,2,7,8,6,11,22]", 
            "[8,2,5,8,4,15,13]", "[9,2,7,4,6,11,7]", 
            "[25,34]")
data <- data.frame(week, visits)

# 核心转换逻辑
result <- data %>%
  # 移除字符串中的方括号
  mutate(visits = str_remove_all(visits, "\\[|\\]")) %>%
  # 将逗号分隔的访问量拆分为单独行
  separate_rows(visits, sep = ",") %>%
  # 转换访问量为数值类型
  mutate(visits = as.integer(visits)) %>%
  # 按周分组,生成对应日期(周起始日 + 行偏移天数)
  group_by(week) %>%
  mutate(date = week + row_number() - 1) %>%
  ungroup() %>%
  # 整理列顺序并按日期排序
  select(date, visits) %>%
  arrange(date)

# 查看结果
head(result)

关键步骤说明

  • 清理字符串:用str_remove_all剔除visits列的方括号,为拆分做准备
  • 拆分行:separate_rows直接将逗号分隔的字符串拆分为多行,自动匹配每组的周起始日期
  • 生成日期:按周分组后,利用row_number()计算每个访问量对应的日期偏移(第n个访问量对应周起始日+n-1天)
  • 整理输出:选择目标列并按日期排序,得到符合要求的长格式数据表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:30:57