2014-10-31 43 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") 

請參閱?格式的其他示例。