2013-11-25 40 views
0

我一直在嘗試在我的數據框上做一個時間序列,並且我需要從我的csv中去除時間。這是我的本錢:時間系列(xts)strptime;只有一個月和一天

campbell <-read.csv("campbell.csv") 

campbell$date = strptime(campbell$date, "%m/%d") 
campbell.ts <- xts(campbell[,-1],order.by=campbell[,1]) 

首先,我想要做的就是讓XTS剝離的日期爲「XX/XX」只月份和日期的意思。我沒有一年的數據。當我嘗試第二行代碼並調用日期列時,它會將其轉換爲「2013-xx-xx」。這些月份和日子與他們沒有任何關聯,我無法弄清楚如何擺脫2013年。(我要求的csv文件的日期格式爲「9/30,10/1」。 ..等)

其次,有一次我嘗試做一個時間序列(第三行),我不能確定什麼是「order.by」命令調用。我是什麼索引?

任何幫助?

謝謝!

+1

的可能的複製(https://stackoverflow.com/questions/24966827/remove-year-from-dates-in-r) –

回答

1

對於strptime,您需要提供完整的日期,也就是日,月和年。在情況下,任何這些不提供,目前的人從保險觀測假設他們的時間和附加到不完整的日期。因此,如果您希望保留日期格式,請先製作一份副本並存儲在臨時變量中,然後使用strptime而不是campbell$date將其轉換爲R可讀的日期格式。因爲,年份不是你的問題,即使它自動附加strptime也不需要擔心。

campbell <-read.csv("campbell.csv") 
date <- campbell$date 
campbell$date <- strptime(campbell$date, "%m/%d") 

其次,你被「三線」做(xts(campbell[,-1],order.by=campbell[,1]))命令是,你是根據所提供的索引告訴下令campbell所有數據除第一列(campbell[,-1])時間數據在第一列campbellcampbell[,1])。所以,只有在的日期位於第一列的情況下才有效。

根據時間序列排序的數據後,您可以用date替換回campbell$date列找回你想要的日期格式(雖然在這裏,首先你要訂購date下面也喜歡所示)

date <- xts(date, order.by=campbell[,1]) # assuming campbell$date is campbell[,1] 
campbell.ts <- xts(campbell[,-1], order.by=campbell[,1]) 
campbell.ts <- cbind(date, campbell.ts) 
0
format(as.Date(campbell$dat, "%m/%d/%Y"), "%m/%d") 
+0

做,如果你編輯你拿點或[從R中刪除的日期每年]什麼? b/c你沒有改變任何東西 – nadsat

+1

沒有超過2k代表沒有意義,編輯只是添加代碼格式(代碼行前4個空格)。因爲這是一個低質量的答案,即使它起作用,它也不能解釋它的作用。 – Tensibai

相關問題