【问题标题】:Cast string to Date in R from a CSV从 CSV 将字符串转换为 R 中的日期
【发布时间】:2014-09-10 19:59:16
【问题描述】:

将日期从 CSV 格式化为 R 可以使用的日期。

我有一个时间序列数据文件。我想将它加载到 R 中,并将 Date 列转换为 R 可用的东西。我可以将输入格式指定为 as.Date(),或者使用另一个可以正确转换 Date 的函数,例如 1/1/14?

在其他语言中,我习惯于传递一个格式字符串,该字符串告诉施法者如何格式化它,例如toDate('1/1/1', '%d/%m/%y')。我还没有找到 R 的这个功能。

my_time_series.csv

Date    Value
1/1/14  123
1/2/14  128.56
1/3/14  129.14
1/4/14  130.13
1/5/14  137.97
1/6/14  141.05
1/7/14  141.35
1/8/14  142.14
1/9/14  142.14
1/10/14 149.89

现在我可以将它导入 R:

$ R
> dat = read.csv("time series test.csv", header = TRUE)
> dat
      Date    Value
1   1/1/14 123.0000
2   1/2/14 128.5693
3   1/3/14 129.1474
4   1/4/14 130.1361
5   1/5/14 137.9758
6   1/6/14 141.0548
7   1/7/14 141.3517
8   1/8/14 142.1449
9   1/9/14 142.1479
10 1/10/14 149.8912

好的,现在我需要将这些日期格式化为实际日期。 as.Date() 转换函数看起来很有希望,但返回的日期不正确:

> as.Date('1/10/14')
[1] "0001-10-14"

于是我搜索是否可以为as.Date()指定输入格式,但它只有第二个参数format用于输出格式。

我在保存 CSV 之前尝试在 Excel 中解决此问题,但它没有任何默认情况下似乎可以使用 as.Date() 的格式。

【问题讨论】:

    标签: r date csv


    【解决方案1】:

    我是个白痴,只是输入了错误的格式。这很好用。

    > as.Date('1/10/14', '%m/%d/%y')
    [1] "2014-01-10"
    

    所以如果我以后有任何任意日期格式,只需重新排列格式字符串即可。

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 2023-03-26
      • 2021-03-14
      • 2023-03-21
      • 2014-03-15
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      相关资源
      最近更新 更多