用断点和标签的数量切割

时间:2014-04-27 21:31:52

标签: r

为什么“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似乎是必需的,但却显示零计数。

该示例取自Phil Spector的“Data Manipulation with R”,

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

1 个答案:

答案 0 :(得分:2)

这不能回答你原来的问题,但是如果没有cut,这是一种实现(我假设的)相同结果的方法。您可以使用quarters功能提取季度&#39;来自Date对象:

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