2015-03-19 30 views
0

我以爲我會在這裏發帖,因爲我花了幾個小時試圖弄清楚這一點。所以我正在使用日期和收盤退貨價格的csv文件。但是,我無法使文件成爲「基於時間」。 (timeBased功能來自包xts)。例如:如何在R中創建基於時間的文件

timeBased(dfx) 
[1] FALSE 

以下是我有:

dfx = xts(aus$AUS, order.by=as.Date(aus$DATE)) 

,這裏是前10行是什麼樣的文件:

DATE AUS 
1 12/1/1988 -0.0031599720 
2 12/2/1988 -0.0015724670 
3 12/5/1988 -0.0000897619 
4 12/6/1988 -0.0022670620 
5 12/7/1988 0.0052895550 
6 12/8/1988 -0.0048259860 
7 12/9/1988 0.0106990910 
8 12/12/1988 0.0033538810 
9 12/13/1988 0.0118568700 
10 12/14/1988 -0.0050105200 

如果有人可以幫助,我會欣賞它!我嘗試使用動物園和其他編輯多個代碼,但沒有。謝謝!! [1]

+0

此外,與我的DFX說法,一些意見供到NA,不知道爲什麼。再次感謝 – 2015-03-19 05:33:17

+0

你的'aus'數據框裏有什麼?你能提供一些示例行嗎?否則很難幫助你。 – 2015-03-19 06:42:31

+0

'?timeBased'說,「用於驗證對象是R中已知的基於時間的類之一。」和「當前基於時間的對象支持'Date','POSIXct','chron','yearmon','yearqtr'和'timeDate'。」 xts不是列出的類之一,所以我不確定爲什麼你期望'timeBased'爲xts對象返回'TRUE'。你想做什麼? – 2015-03-19 12:35:12

回答

1

正如Joshua Ulrich指出的,使用帶有xts對象的timeBased函數應該可以返回FALSE。除此之外,您的代碼可能還有其他問題。假設您的示例顯示aus的內容,那麼aus$DATE實際上是一個因子或字符數據,而不是Date對象。要正確轉換爲xts對象,您必須指定aus$DATE數據的日期格式。要轉換,然後進行測試dfx是否是XTS的對象,你可以使用下面的代碼:

dfx = xts(aus$AUS, order.by=as.Date(aus$DATE, "%m/%d/%Y")) 
dfx 
       [,1] 
1988-12-01 -0.0031599720 
1988-12-02 -0.0015724670 
1988-12-05 -0.0000897619 
1988-12-06 -0.0022670620 

timeBased(dfx) 
[1] FALSE 

is.xts(dfx) 
[1] TRUE