R - 将各种 csv 数字列转换为日期

问题描述 投票:0回答:1

我有一个 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 几天,所以如果能提供基本的解释将不胜感激。

r date type-conversion
1个回答
0
投票

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
   )
© www.soinside.com 2019 - 2024. All rights reserved.