从这种格式创建日期:Y中的YYYYmmdd

时间:2015-04-16 08:33:24

标签: r datetime zoo posixct lubridate

我的日期格式有问题。我的输入数据如下:

73;2013120101;   7;  38;   0.1;  99.0;eor

第二列2013120101是我的日期列。 我想导入它在R中处理它,最终它应该看起来像

1969 01 02 00:00

这样

 dwd <- read.csv(file="testdwd.txt",header=T,sep=";",stringsAsFactors=F)
 dwd[,1] <- ymd(dwd[,1])

收益率为1982-12-01,但我不知道如何完成剩下的工作。

3 个答案:

答案 0 :(得分:3)

您可以尝试strptimeformat,例如

d <- "2013120121"
x <- strptime(x=d, format = "%Y%m%d%H")
format(x, "%Y %m %d %k:%M")
## [1] "2013 12 01 21:00" # which gives the desired output
年份为

%Y,月份为%m,一天为%d,小时为%k,分钟为%M

答案 1 :(得分:1)

基函数strptime正确处理它:

> dwd <- read.csv(textConnection("73;2013120101;   7;  38;   0.1;  99.0;eor"),
                  sep=";",stringsAsFactors=F,head=F)
> strptime(dwd[2],"%Y%m%d%H")
                   V2 
"2013-12-01 01:00:00" 

答案 2 :(得分:1)

使用lubridate

require("lubridate")

#dummy data
x <- read.table(text="73;2013120101;   7;  38;   0.1;  99.0;eor",sep=";")

#reformat
ymd_hms(paste0(x$V2,"0000"))

#output
#[1] "2013-12-01 01:00:00 UTC"