我看到过一些类似的问题试图回答这个问题,但没有一个问题适合我的问题。
Converting dates from excel to R
How do I convert dates in this format to a date class in R?
我有约会:
dates <- c("16 Jan 63", "16 Jan 73", "17 Jul 62", "25 Aug 60")
所有年份都以“19 - ”开头
我认为使用的显而易见的解决方案是as.Date
或strptime
函数:
dates <- as.Date(dates, "%d %b %y")
dates
[1] "2063-01-16" "2073-01-16" "2062-07-17" "2060-08-25"
正如您所看到的,问题在于年份,没有一个被正确转换。
我的下一个解决方案是使用strsplit
:
dates <- c("16 Jan 63", "16 Jan 73", "17 Jul 62", "25 Aug 60")
new.dates <- strsplit(dates, " ")
new.dates
[[1]]
[1] "16" "Jan" "63"
[[2]]
[1] "16" "Jan" "73"
# etc
然而,当我尝试在年前粘贴“19”时,问题就开始了,然后将它们折叠回同一个角色。
new.dates[?] <- paste0("19", new.dates[?])
new.dates[?] <- paste(new.dates[?], collapse = " ")
我不知道粘贴的尺寸是多少。最后我想使用以下方式格式化日期:
new.dates <- strptime(new.dates, "%d %b %Y")
new.dates <- as.Date(new.dates)
如果有人对如何执行此操作有任何建议,或者链接到已经回答的问题,我们将不胜感激。
答案 0 :(得分:0)
我们可以尝试
as.Date(format(as.Date(dates,"%d %B %y"), "19%y-%m-%d"))