我有以下格式的日期:" 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中的函数。一周的日子和一年中的某一天都存在,我需要一个月的日子。
数据存在于数据框中。数据是基本交易数据。
答案 0 :(得分:3)
并且(再次)不需要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>
不是我当地(中部)时间的时区调整。