【问题标题】:specifying as.Date format returns NA in R指定 as.Date 格式在 R 中返回 NA
【发布时间】:2018-05-24 22:16:41
【问题描述】:

我有以下 DF:

date <- c("2017-10-11","2018-04-02","2017-05-03")
df <- data.frame(date)

以下代码未能将其格式化为日期,而是返回 NA:

df$date <- as.Date(df$date,format='%Y/%m/%d')

以下代码成功地将其格式化为日期:

df$date <- as.Date(df$date)

我在其他项目中指定了 as.Date 格式(与第一个 as.Date 代码一样),它以前对我有用。有很多关于 as.Date 返回 NA 的类似问题的回复,但我找不到任何解释为什么我的第一个 as.Date 代码在这种情况下不起作用,但我的第二个代码可以。我不需要为我的目的指定格式,但我想了解为什么第一行代码不起作用。

【问题讨论】:

  • 试试df$date &lt;- as.Date(df$date,format='%Y-%m-%d')

标签: r


【解决方案1】:

as.Date函数的format参数的默认值为"%Y-%m-%d",与dfdate列的格式相匹配。

因此,df$date &lt;- as.Date(df$date) 完美运行。

R-Studio 帮助将format 参数描述为:

格式

一个字符串。如果没有指定,它将尝试"%Y-%m-%d" 然后 "%Y/%m/%d" 在第一个非 NA 元素上,如果 两者都不起作用。否则处理通过strptime

但是,df$date &lt;- as.Date(df$date,format='%Y/%m/%d')工作。原因是作为format 一部分提到的分隔符/ 不存在于数据列中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2017-04-15
    • 2016-11-16
    • 1970-01-01
    相关资源
    最近更新 更多