我有一列包含2种不同格式的日期,即DD / MM / YY和D / M / YY。由于Microsoft Excel(对于mac 2011,14.3.9)在部分变量中将标记为D / M / YY的日期识别为M / D / YY,因此输出日期变得不正确。
然后我转向R并尝试将该列转换为“DD-MON-YYYY”格式,其中MON是短月形式,如2014年1月1日。专栏是这样的:
> head(date, 10)
date
1 17/12/96
2 27/6/07
3 21/6/13
4 24/7/13
5 17/7/13
6 16/7/13
7 13/10/99
8 20/2/97
9 14/12/96
10 19/6/13
我使用了format
函数
format(date,"%d %b %Y")
输出
Error in format.default(structure(as.character(x), names = names(x), dim = dim(x), :
invalid 'trim' argument
我也尝试过lubridate
套餐但没有成功。
> library(lubridate)
> dmy(date)
[1] NA
Warning message:
All formats failed to parse. No formats found.
有没有简单的方法来改变日期?
答案 0 :(得分:2)
您需要将字符串转换为类日期的对象,例如
as.Date("17/12/96", "%d/%m/%y")
[1] "1996-12-17"
然后应用您的格式
format(as.Date("17/12/96", "%d/%m/%y"), "%d-%b-%Y")
[1] "17-Dec-1996"