在R中如何转置/透视数据框、调整日期格式并拆分参数列
R实现方案
首先安装并加载所需依赖包:
install.packages("tidyverse") # 未安装过的情况下执行此行 library(tidyverse)
核心处理代码如下:
# 假设你从JSON解析得到的原始数据框名为df,可自行替换为你的实际变量名 result <- df %>% # 处理日期格式:识别原始ISO格式时间后转换为指定字符串格式 mutate(date = lubridate::ymd_hms(date), date = format(date, "%Y-%m-%d %H:%M:%S")) %>% # 长表转宽表:parameter列取值作为新列名,value列对应取值填充,缺失值自动设为NA pivot_wider(names_from = parameter, values_from = value, values_fill = NA) %>% # 按时间戳升序排列 arrange(date)
如果偏好使用base R实现,可参考以下代码:
# 处理日期格式 df$date <- strptime(df$date, "%Y-%m-%dT%H:%M:%SZ") df$date <- format(df$date, "%Y-%m-%d %H:%M:%S") # 长表转宽表 result <- reshape(df, idvar = "date", timevar = "parameter", direction = "wide") # 修正列名 colnames(result) <- gsub("value\\.", "", colnames(result)) # 按时间升序排序 result <- result[order(result$date), ] # 重置行号 rownames(result) <- NULL
执行完成后得到的result对象即为符合要求的目标数据集。
内容的提问来源于stack exchange,提问作者Dahl
相关产品推荐
相关产品推荐

