R - xts 对象中每月的观察次数(工作日数据)
R - Number of observations per month in an xts object (weekday data)
我有几个 xts 对象,其中包含从 2001-01-01 到 2021-12-31 的工作日数据。现在我需要知道从 2001 年 1 月到 2021 年 12 月每个月的观察次数,以便进一步分析它们。我怎样才能得到这些?我是 R(和编程)的新手,所以我假设有一个我不知道的简单公式。
structure(c(6.5156, 6.5, 6.4531, 6, 5.8594, 5.8281, 5.8438, 5.8281,
5.8438, 5.8438, 5.8438, 5.7969), class = c("xts", "zoo"), .CLASS = "double", index = structure(c(978307200,
978393600, 978480000, 978566400, 978652800, 978912000, 978998400,
979084800, 979171200, 979257600, 979516800, 979603200), tzone = "UTC", tclass = "Date"), .Dim = c(12L,
1L))
首先,我将您的 xts 对象转换为数据框。之后,您可以使用 month
创建一个 month
列,从每月 lubridate
和 group_by
到 summarise
每月的观察次数,如下所示:
library(dplyr)
library(lubridate)
data.frame(date = index(df), coredata(df)) %>%
mutate(month = month(date)) %>%
group_by(month) %>%
summarise(n = n())
输出:
# A tibble: 1 × 2
month n
<int> <int>
1 1 12
在这种情况下,您的数据在 1 月份有 12 个观测值。
xts 拥有您可以使用的各种 period.apply
功能。每月:apply.monthly
根据您的示例,如果您想要观察值的总和/平均值/n:
# sum
apply.monthly(my_xts, sum)
[,1]
2001-01-16 72.1564
# mean
apply.monthly(my_xts, mean)
[,1]
2001-01-16 6.013033
# n of records
# length works like sum or mean,
# but this is an example of how to use an anonymous function.
apply.monthly(my_xts, function(x) length(x))
[,1]
2001-01-16 12
xts 总是以期间的最后一天来显示信息。
我有几个 xts 对象,其中包含从 2001-01-01 到 2021-12-31 的工作日数据。现在我需要知道从 2001 年 1 月到 2021 年 12 月每个月的观察次数,以便进一步分析它们。我怎样才能得到这些?我是 R(和编程)的新手,所以我假设有一个我不知道的简单公式。
structure(c(6.5156, 6.5, 6.4531, 6, 5.8594, 5.8281, 5.8438, 5.8281,
5.8438, 5.8438, 5.8438, 5.7969), class = c("xts", "zoo"), .CLASS = "double", index = structure(c(978307200,
978393600, 978480000, 978566400, 978652800, 978912000, 978998400,
979084800, 979171200, 979257600, 979516800, 979603200), tzone = "UTC", tclass = "Date"), .Dim = c(12L,
1L))
首先,我将您的 xts 对象转换为数据框。之后,您可以使用 month
创建一个 month
列,从每月 lubridate
和 group_by
到 summarise
每月的观察次数,如下所示:
library(dplyr)
library(lubridate)
data.frame(date = index(df), coredata(df)) %>%
mutate(month = month(date)) %>%
group_by(month) %>%
summarise(n = n())
输出:
# A tibble: 1 × 2
month n
<int> <int>
1 1 12
在这种情况下,您的数据在 1 月份有 12 个观测值。
xts 拥有您可以使用的各种 period.apply
功能。每月:apply.monthly
根据您的示例,如果您想要观察值的总和/平均值/n:
# sum
apply.monthly(my_xts, sum)
[,1]
2001-01-16 72.1564
# mean
apply.monthly(my_xts, mean)
[,1]
2001-01-16 6.013033
# n of records
# length works like sum or mean,
# but this is an example of how to use an anonymous function.
apply.monthly(my_xts, function(x) length(x))
[,1]
2001-01-16 12
xts 总是以期间的最后一天来显示信息。