【问题标题】:R Problems to transform a number as dateR将数字转换为日期的问题
【发布时间】:2016-08-22 18:12:01
【问题描述】:

我正在尝试转换数据框 (DA$Date) 的列,但没有得到它。

在我的专栏中有 1012010 等数字,对应于 2010 年 1 月 1 日。 我正在使用命令

日期

但结果离开

日期[1]

[1]“2001 年 10 月 12 日”

这与正确的日期不符。

已经使用过该命令

dates2

但没有成功。

日期列示例

1012010 1012010 1012010 1012010 1012010 1012010 1012010 1012010 1012010 1012010 2012010 2012010 2012010 2012010 2012010 2012010 2012010 2012010 2012010 2012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 3012010 2012010 3012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 4012010 5012010 5012010 5012010 5012010 5012010 5012010 5012010 5012010 5012010 5012010 5012010 3012010 6012010 6012010 2012010 6012010 2012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 6012010 7012010 7012010 7012010 7012010 7012010 7012010 7012010

【问题讨论】:

  • 尝试使用来自library(lubridate)dmy(1012010)
  • 请向我们展示您列中的更多行,以帮助指定日期格式。您的示例模棱两可,因为它可能是日/月或月/日。鉴于您的代码,月份似乎有前导零?
  • 您的数据集中的位数是否可变
  • 在你的数据中,一天总是2位数吗?是月份吗?例如,2010 年 2 月 9 日应该写成“292010”还是“02092010”?第二种情况会更容易处理。
  • 我添加了一个列示例

标签: r


【解决方案1】:

我们可以通过在前面填充 0 来做到这一点,然后使用 as.Dateformat = "%d%m%Y"

as.Date(sprintf("%08d", v1), "%d%m%Y")
#[1] "2010-01-01" "2010-01-06" "2010-01-16" "2010-12-01" "2010-12-15"

数据

v1 <- c(1012010, 6012010, 16012010, 1122010, 15122010)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 2021-03-21
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多