2014-10-31 42 views
0

我有一些数据,例如:发行日期R中

Date  CAC Index 
2014-10-10 4073,71 
2014-10-17 4033,18 
2014-10-24 4128,9 

但是,当我把它分成R与XLConnect库,我得到以下几点:

wb<-loadWorkbook(file.choose()) 

lp<-getSheets(wb) 
data=lapply(seq_along(lp),function(i) readWorksheet(wb,sheet=lp[i],startRow=1))[[1]] 
data[,1]=as.character(data[,1]) 

tail(data,3)[,c(1,4)] 
        Date CAC.Index 
719 2014-10-09 22:00:00 4073.71 
720 2014-10-16 22:00:00 4033.18 
721 2014-10-23 22:00:00 4128.90 

为什么我没有拿到相同的日期? 在例如: 我不得到2014年10月24日,而不是我得到2014年10月23日22:00:00

也许这是一个问题与

ttz<-Sys.getenv('TZ') 
Sys.setenv(TZ='GMT') 

? 问候函

+0

您是否在某处使用了'as.POSIXct'?也许[这个答案](http://stackoverflow.com/a/26280480/3521006)有帮助吗? – 2014-10-31 10:02:40

+0

@beginneR嗨,不,我没有使用'as.POSIXct'。 – user1665355 2014-10-31 10:12:38

+0

您是否正在更改时区环境变量?你在导入数据之前还是之后都这样做?你的时区是什么? – jlhoward 2014-10-31 17:14:07

回答

0

我认为它来自导入数据格林威治标准时间并将其转换为您的本地时区,这似乎GMT-2,因此2014/10/10 00:00设置为2014/10/09 22:00

也许你可以通过根据OlsonNames()列表指定你的tz来解决这个问题,或者指定你的日期列是Date而不是POSIXct

0

看起来它已经将Excel中的日期字符串转换为R中的Date对象。尝试一个str(数据)来查看data.frame中的类型(好习惯)

如果它是一个Date对象,那么您可以使用格式将其放入您想要阅读的方式。例如:

##assuming data$Date is a Date class object 
data$DateFormatted <- format(data$Date, format="%Y-%m-%d") 

请参阅?格式的其他示例。