3个字母的月份和2位数字的年份格式(R)

3个字母的月份和2位数字的年份格式(R),r,date,format,R,Date,Format,我正在尝试将以下格式转换为最新格式: as.Date('Mar.17', format = '%b.%y') 但它返回NA 我错过了什么 更新,我预计2017年3月,而不是2018年应该是: as.Date('Mar.17', format = '%b.%d') as.yearmonfromzoopackage将按照OP的预期提供date(2017年3月) library(zoo) as.yearmon("Mar.17", "%b.%y") #[1] "Mar 2017" 另一个将其转换

我正在尝试将以下格式转换为最新格式:

as.Date('Mar.17', format = '%b.%y')
但它返回NA

我错过了什么

更新,我预计2017年3月,而不是2018年

应该是:

as.Date('Mar.17', format = '%b.%d')

as.yearmon
from
zoo
package将按照OP的预期提供
date(2017年3月)

library(zoo)

as.yearmon("Mar.17", "%b.%y")
#[1] "Mar 2017"
另一个将其转换为2017年3月1日的选项

as.Date(as.yearmon("Mar.17", "%b.%y"), frac = 0)
#[1] "2017-03-01"

假设
17
部分是年份,您可以使用
sub
添加一个日数,使其成为实际日期

as.Date(sub("\\.", "01", "Mar.17"), "%b%d%y")
# [1] "2017-03-01"

您需要%b个月格式的点数,至少在我的计算机中需要

as.Date(paste0( "01",'mar.2017'), format = '%d%b%Y')

“2017-03-01”

除非有月、日和年,否则它不是日期。可以尝试:
作为.date(粘贴0('Mar.17',1),格式='%b.%y%d')
。。。如果是今年的话。谢谢,我想把它转换成2017年3月1日。你不能指望R理解你想要的是3月1日;那么lubridate::dmy(粘贴(1,'Mar.17')(我更喜欢使用lubridate函数来处理日期变量)呢