R timeDate在coersion中耗费时间

时间:2016-02-24 01:57:27

标签: r datetime

我有以下格式的日期:" 2016年2月9日21:16"

当我试图强迫他们进入timeDate时,我会收到结果:[1] [2016-02-03]

我宁愿不必编写自己的字符串操作,但我可以而且已经拥有,但必须有更好的方法。我有一个数据框,我正在尝试执行以下操作:

restData2 <- restData %>% 
  mutate(year = year(as.timeDate(Date)),
     month = month(as.timeDate(Date)),
     day = day(as.timeDate(Date)),
     timeCategory = converToTimeCategory(Date)
  )

注意,那天也不是timeDate中的函数。一周的日子和一年中的某一天都存在,我需要一个月的日子。

数据存在于数据框中。数据是基本交易数据。

1 个答案:

答案 0 :(得分:3)

大卫,你很困惑。 R区分内部表示和实际格式化显示。适用于所有类型。

并且(再次)不需要timeDate,lubridate或任何其他包装器:

R> intxt <- c("2/9/2016 21:16", "2/11/2016 22:23")
R> parsed <- as.POSIXct(intxt, format="%d/%m/%Y %H:%M")
R> parsed
[1] "2016-09-02 21:16:00 CDT" "2016-11-02 22:23:00 CDT"
R> format(parsed, "%d %b %Y at %H:%M")
[1] "02 Sep 2016 at 21:16" "02 Nov 2016 at 22:23"
R> 

这里我们将datetime对象解析为标准POSIXct,指定格式。可以是日月或月日;我选择了前者。

鉴于parsed对象,我首先显示默认显示,然后显示自定义格式字符串。

最后,如果必须,您还可以转换为timeDate

R> library(timeDate)
R> as.timeDate(parsed)
GMT
[1] [2016-09-03 02:16:00] [2016-11-03 03:23:00]
R> 

不是我当地(中部)时间的时区调整。