【问题标题】:From character to posixct从字符到posixct
【发布时间】:2018-02-16 15:11:09
【问题描述】:

我有这个由一年和一个月组成的字符类型向量。我想将其转换为日期类型,但是当我尝试使用 POSIXct 函数执行此操作时,出现错误:

 Error in as.POSIXlt.character(x, tz, ...) : 
   character string is not in a standard unambiguous format

我似乎无法弄清楚为什么它不起作用。有人吗?

 old <- as.character("201702")

 library(lubridate)
 new <- as.POSIXct(date, origin = "201501")

【问题讨论】:

  • 请不要将解决方案作为您问题的一部分发布。如果您认为它有用,您可以将解决方案发布为您自己问题的答案......另外,您似乎已经更改了问题的定义(您希望结果为 POSIXct 还是 Date)?
  • 抱歉,我删除了问题中的解决方案,并已将下面提供的解决方案标记为有用的解决方案
  • 很好,尽管我确实认为您的答案(使用数字处理而不是字符串处理来添加日期)是一个有趣的替代解决方案

标签: r date posixct


【解决方案1】:

您只需要先使用适当的格式转换为日期:

as.POSIXct(as.Date("201702", format = "%Y%m"))

你也可以假设你想要一个月的 1 号?

as.POSIXct(as.Date(paste0("201702", "01"), format = "%Y%m%d"))

请注意 POSIX 日期,因为它们也包含时间,因此您指定的时区也会影响您获得的日期。

【讨论】:

  • %M 是几分钟。你怎么能用几个月呢?
  • 我认为你不能。我认为您需要as.Date(paste0("201710","01"),format="%Y%m%d")(不附加日期就无法工作)
  • 谢谢,我打字有点快。
  • 谢谢大家,我已经找到了一个令人满意的解决方案,并将其添加到我的问题中
  • 请注意,第一个解决方案(没有在字符串中添加日期)给出NA
猜你喜欢
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
相关资源
最近更新 更多