gpt4 book ai didi

r - 在 R 中获取每个 11 月的第 4 个星期三

转载 作者:行者123 更新时间:2023-12-01 08:17:12 24 4
gpt4 key购买 nike

我有一个时间索引矩阵(xts 对象),我只想要每年 11 月的第四个星期三。

require(quantmod)
getSymbols("^GSPC", from="1900-01-01") #returns GSPC
GSPC$WED <- weekdays(time(GSPC)) == "Wednesday"
GSPC$NOV <- months(time(GSPC)) == "November"
G <- GSPC[GSPC$WED==1 & GSPC$NOV==1]

这就是我在 R 中学到的。为了解决我的问题,我选择了 bash。
write.zoo(G, "wen_in_nov")

我做了以下黑客:
cat wen_in_nov |
grep -v IND |
cut -c 1-10 |
sed 's/-/ /g' |
awk '{if($3 >= 22 && $3 < 29) print $1, $2, $3, "winner"}' |
sed 's/ /-/g' > fourth_wen
fourth_wen文件需要分隔 -来自字符串 'winner' 所以我只是在 vi 中做到了。导入回 R:
fourth_wen <- read.zoo("fourth_wen", format="%Y-%m-%d")

这基本上是自 1950 年以来 11 月的第四个星期三。有没有办法用更少的代码在 R 中完成这一切?

最佳答案

使用 .indexmon 等直接访问 POSIXlt 值

GSPC[.indexmon(GSPC)==10 & .indexmday(GSPC) > 22 & .indexmday(GSPC) < 29
&.indexwday(GSPC) == 3]

GSPC.Open GSPC.High GSPC.Low GSPC.Close GSPC.Volume GSPC.Adjusted
2007-11-28 1432.95 1471.62 1432.95 1469.02 4508020000 1469.02
2008-11-26 852.90 887.68 841.37 887.68 5793260000 887.68
2009-11-25 1106.49 1111.18 1104.75 1110.63 3036350000 1110.63
2010-11-24 1183.70 1198.62 1183.70 1198.35 3384250000 1198.35
2011-11-23 1187.48 1187.48 1161.79 1161.79 3798940000 1161.79

关于r - 在 R 中获取每个 11 月的第 4 个星期三,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246990/

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