R语言如何拆分Date列为两列并调整..1列为病例数字段
R语言数据重构实现方案
核心处理逻辑
你的数据是按Frequency字段分组存储的,每组固定2行:第1行Date列存储真实日期,第2行Date列存储对应病例数值,...1列仅第2行有CasesNumbers标识,因此用分组聚合的方式处理最便捷。
完整实现代码
首先加载依赖包:
library(tidyverse)
执行数据重构:
df_final <- df1 %>% # 按Frequency分组,每组对应一条完整的日期+病例记录 group_by(Frequency) %>% summarise( # 取每组第1行的Date值转标准日期格式 Date = as.Date(Date[1], format = "%B %d, %Y"), # 取每组第2行的Date值转数值作为病例数 CasesNumbers = as.numeric(Date[2]), # 按需设置原...1列为统一病例数字段标识 `...1` = "CasesNumbers", .groups = "drop" )
运行后你会得到包含4个字段的规整数据集,如果不需要保留Frequency和...1列,直接在summarise后加%>% select(-Frequency, -...1)即可。
之前代码的问题说明
separate函数的into参数要求传入字符向量,你写的into = 'Date','Number'属于语法错误,正确写法为into = c("Date", "Number")- 你错误指定了待拆分的列,你要处理的是
Date列,不是不存在的Number of Cases列 - 你的数据属于同组分行存储的结构,不是单单元格内用分隔符拼接的结构,因此不需要用字符串拆分类函数处理,分组聚合效率更高逻辑更清晰
内容的提问来源于stack exchange,提问作者AnRay
相关产品推荐
相关产品推荐

