我如何根据特定月份的值对动物园对象进行子集化
How do i subset a zoo object based on values for a particular month
My zoo object
我想创建一个仅包含 12 月流量值的值子集(这些是流量值)。
谢谢!
我们可以用format
从index
中提取'months',通过与'Dec'比较得到一个逻辑索引,并用它来对[=17进行子集化=]对象。
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
对象,也可以使用 xts
包中的 .indexmon
。 .indexmon
从0开始,所以12月是11。
library(xts)
z1[.indexmon(as.xts(z1))==11]
评论中的其他选项正在 index
上使用 grep
来获取数字索引和子集(来自@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'))
My zoo object 我想创建一个仅包含 12 月流量值的值子集(这些是流量值)。
谢谢!
我们可以用format
从index
中提取'months',通过与'Dec'比较得到一个逻辑索引,并用它来对[=17进行子集化=]对象。
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
对象,也可以使用 xts
包中的 .indexmon
。 .indexmon
从0开始,所以12月是11。
library(xts)
z1[.indexmon(as.xts(z1))==11]
评论中的其他选项正在 index
上使用 grep
来获取数字索引和子集(来自@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'))