我的日期格式有问题。我的输入数据如下:
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,但我不知道如何完成剩下的工作。
答案 0 :(得分:3)
您可以尝试strptime
和format
,例如
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"