我有一个 csv 数据表,其中有 7 列,其中填充了数值。 其中 3 列代表测量日期:
"YYYY", "MM", "DD",
,后跟 4 列相关对应数据:"qobs", "ckhs", "qceq", "qcol"
。
如何将填充数值的前三列转换为日期数据类型,同时保持日期对相应日期的依赖性?
# YYYY, MM, DD, qobs, ckhs, qceq, qcol
# 1 1981, 1, 1, 7.136, 0, 0, 0
# 2 1981, 1, 2, 6.76, 0, 0, 0
# 3 1981, 1, 3, 10.886, 0, 0, 0
# ...
我上网查了一下,只找到了使用
as.Date
函数对应单个字符串的解决方案。我对编程相当陌生,只使用 R 几天,所以如果能提供基本的解释将不胜感激。
tiydverse
解决方案:
library(vroom)
library(dplyr)
library(lubridate) # a truly wonderful package for this kind of thing
df <- vroom("path-to-your-file.csv"
col_types = "iiidddd")
df <-
mutate(
df,
date =
paste(YYYY,MM,DD, sep = ",") |>
ymd(),
.keep = "unused", # drop the columns used for computation
.before = qobs
)