2016-10-14 89 views
-2

转换日期这是我在这里的第一篇文章,但我已经从你们所有人中受益匪浅。但是,我无法自己解决这个问题:
R - 从因子

我正在使用read.csv导入一组相当大的观察值,包括它们的日期。在我的数据帧相应的日期栏(“数据$日期”)是一个整数向量,看起来像下面这样:

head(data$date) 
[1] "26 Oct 15" "03 Nov 15" "10 Nov 15" "17 Nov 15" "19 Nov 15" "19 Nov 15" 
class(data$date) 
[1] "factor" 

当试图将其转换成一个“日期”对象,我用“作为。日期()”函数:

tmp <- as.Date(data$date, format="%d %h %Y") 
head(tmp) 
[1] "0015-10-26" "0015-11-03" "0015-11-10" "0015-11-17" "0015-11-19" "0015-11-19" 

正如你所看到的,它得到的权之日起的孩子,但有两个问题:
1)为什么当年提出的‘0015’,而不是“2015年“?
2)我假设函数以默认格式返回日期。但是,我想以不同的格式(即,初始格式)来使用的日期,我提到的功能

format() 

但是,此函数返回我不能为我的分析使用角色对象。因此,有没有其他方法可以在不改变对象的类的情况下更改日期格式?

感谢您的支持!
雅各布

+1

使用'%,而不是'%Y'和今年应该尝试解决。 – aichao

+1

'tmp + 2000'? :)只是在开玩笑......我想这是因为你指定了'%Y'而不是'%y'。 –

回答

1

你也许能够以下

vec <- c("26 Oct 15", "03 Nov 15", "10 Nov 15", "17 Nov 15", "19 Nov 15", "19 Nov 15") 

tmp <- as.Date(vec, format="%d %h %y") 

这似乎解决它感谢y`的

+0

谢谢,那是做的工作。但是,我可以在不转换格式的情况下更改格式: –

+0

谢谢,完成了这项工作。但是,我可以在不将日期转换为字符对象的情况下更改格式吗? –

+0

似乎很'fac_vec < - as.factor(vec)tmp < - as.Date(fac_vec,format =“%d%h%y”)'它看起来不像它有区别 –