2014-04-27 69 views
2

爲什麼在「3個月」的剪切不會按預期生成標籤?切斷休息次數和標籤

# create time series data 
everyday <- seq(from = as.Date('2014-1-1'), to = as.Date('2014-12-31'), by = 'day') 

# create a factor based on the quarter of the year an observation is in: 
qtrs <- cut(everyday, "3 months", labels = paste0('Q', 1:4)) 

## Error in cut.default(unclass(x), unclass(breaks), labels = labels, 
## right = right, : 
## lengths of 'breaks' and 'labels' differ 

切割是每3個月,這樣會造成4個季度和我預計需要4個標籤,但錯誤信息表明,斷裂和標籤的長度不同。

qtrs <- cut(everyday, "3 months", labels = paste0('Q', 1:5)) 
table(qtrs) 
## qtrs 
## Q1 Q2 Q3 Q4 Q5 
## 90 91 92 92 0 

第五個標籤Q5似乎是需要的,但卻顯示爲零計數。

的例子摘自「數據處理與R」由菲爾·斯佩克特,

http://www.springer.com/statistics/computational+statistics/book/978-0-387-74730-9

+1

也許'quarters'功能可能是有用的嗎? – Henrik

+2

甚至只是使用「宿舍」而不是「3個月」? –

+0

確實'qtrs < - 切(每天,「宿舍」,標籤= paste0('Q',1:4))'工作,謝謝!你們中的一個人是否想回答這個問題,以便我們能夠解決這個問題? – PatrickT

回答

2

這不回答你原來的問題,而是一個方式來實現(我認爲是)相同結果,沒有cut。您可以使用quarters功能的「季」從Date對象中提取:

table(quarters(everyday)) 
# Q1 Q2 Q3 Q4 
# 90 91 92 92