gpt4 book ai didi

r - 使用R从XTS对象中获取当月第一个工作日的 yield

转载 作者:行者123 更新时间:2023-12-04 03:45:27 25 4
gpt4 key购买 nike

如果我在解释此问题时遇到任何术语错误,我对R感到很陌生。

我在一组csv文件中有一组每日返回数据,这些数据已设法转换为xts对象。数据格式为:

           HighYield..EUR. MSCI.World..EUR.
2002-01-31 0.0144 0.0031
2002-02-01 0.0056 -0.0132
2002-02-02 0.0373 0.0356
2002-02-03 -0.0167 -0.0644
2002-02-04 -0.0062 -0.0332
2002-02-05 -0.0874 -0.1112
...

我想创建一个脚本,该脚本将从索引中的值的范围中查找该月的第一个工作日,然后创建一个包含这些返回值的新xts对象。

例如,脚本运行后,我将得到一个xts对象,其格式为:
           HighYield..EUR. MSCI.World..EUR.
2002-01-31 0.0144 0.0031
2002-02-28 0.0011 -0.0112
2002-03-31 0.0222 0.0224
2002-04-30 -0.0333 -0.0223
2002-05-30 -0.0011 -0.0012
2002-06-30 -0.0888 -0.0967
...

有谁可以帮助我吗?并尽可能说明脚本各部分的功能。

最佳答案

得益于基本R语言的强大功能,您可以在一行中完成此操作:

 library(xts)
data(sample_matrix)
x <- as.xts(sample_matrix)
do.call(rbind, lapply(split(x, "months"), first))

要解释每个步骤在做什么:
 # Split the xts object into a list with an element for each month.
x1 <- split(x, "months")
# Loop over the list (x1) and call the first() function on each element.
# This returns a new list where each element only contains the first observation
# from each respective element in x1.
x2 <- lapply(x1, first)
# Call rbind() with all the elements of x2 as arguments to rbind()
# Same as rbind(x2[[1]], x2[[2]], ..., x2[[N]])
x3 <- do.call(rbind, x2)

关于r - 使用R从XTS对象中获取当月第一个工作日的 yield ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10994496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com