2015-02-17 36 views
-1

我有這樣的R數據,我想提取年,月,日等如何將這些時間戳轉換爲其組件?

19620101 
19620102 

我能夠分解的月份和日期,但年份和月份是不給我正確的答案。你能告訴我爲什麼?

df$year <- format(as.Date(df$DATE),'%Y') 
df$month <- format(as.Date(df$DATE),'%m') 
df$day <- format(as.Date(df$DATE),'%d') 

輸出我得到

55688 01 05 
55688 01 06 

預計輸出

1962 01 01 
1962 01 02 
+2

嘗試'格式(as.Date(as.character(DF $ DATE), 「%Y%M%d」), '%Y')' – nrussell 2015-02-17 20:50:29

+0

嗨,我得到這個錯誤:在charToDate (x): 字符串不是標準的明確格式 – maximusdooku 2015-02-17 20:51:50

+0

什麼是你的專欄?因爲'format(as.Date('19620101',「%Y%m%d」),「%Y」)給了我''1962'''。 – nrussell 2015-02-17 20:54:41

回答

0

你可以用lubridate package來做到這一點。

library("lubridate") 
d <- ymd("19620101") 
year(d) 
month(d) 
day(d) 
1

也許只是串?

substring(as.character(19620101), 1, 4) 
substring(as.character(19620101), 5, 6) 
substring(as.character(19620101), 7, 8) 
+1

'substring'被矢量化並且不會抱怨非字符,所以,在一個步驟中,'子串(19620101,c(1,5,7),c(4,6,8))' – 2015-02-17 21:06:18