My zoo object 我想创建一个仅包含12月流量值的值子集(这些是放电值)。
谢谢!
答案 0 :(得分:1)
我们可以使用index
从format
中提取'月',通过与'Dec'进行比较来获取逻辑索引,并使用它来对zoo
对象进行子集化。
z1[format(index(z1), '%b')=='Dec']
#1938-12-03 1938-12-10 1938-12-17 1938-12-24 1938-12-31
# 49 50 51 52 53
如果我们转换为xts
对象,也可以使用.indexmon
包中的xts
。 .indexmon
从0开始,因此12月是11。
library(xts)
z1[.indexmon(as.xts(z1))==11]
评论中的其他选项是使用grep
上的index
来获取数字索引和子集(来自@Pierre Lafortune)
z1[grep("-12-",index(z1))]
或subset/month
选项(来自@ G. Grothendieck)
subset(z1, months(time(z1)) == "December")
library(zoo)
z1 <- zoo(1:100, order.by = seq(as.Date('1938-01-01'),
length.out=100, by = '1 week'))