gpt4 book ai didi

r - 使用 R 中的 xts 获取每周的第一天和最后一天

转载 作者:行者123 更新时间:2023-12-01 10:54:23 25 4
gpt4 key购买 nike

我在 post 中读到了这个绝妙的解决方案.我想得到两个时间序列对象。一个用于每周的第一天,另一个用于每周的最后一天。我的时间序列在不包括周末和假期的意义上是不规则的。周从周一到周日。这是我系列的开头:

         Date   Val WeekNum
1 01/02/1990 41.38 1
2 02/02/1990 42.88 1
3 05/02/1990 42.00 2
4 06/02/1990 41.50 2
5 07/02/1990 42.25 2
6 08/02/1990 41.75 2
7 09/02/1990 42.13 2
8 12/02/1990 42.13 3
9 13/02/1990 42.00 3
10 14/02/1990 42.63 3
11 15/02/1990 43.75 3
12 16/02/1990 44.75 3
13 20/02/1990 44.13 4
14 21/02/1990 43.88 4
15 22/02/1990 44.38 4
16 23/02/1990 44.00 4
17 26/02/1990 44.00 5
18 27/02/1990 44.88 5
19 28/02/1990 44.50 5
20 01/03/1990 44.63 5
21 02/03/1990 46.00 5
22 05/03/1990 45.88 6
23 06/03/1990 45.50 6
24 07/03/1990 45.38 6
25 08/03/1990 43.63 6
26 09/03/1990 41.50 6
27 12/03/1990 41.38 7
28 13/03/1990 40.63 7
29 14/03/1990 40.25 7
30 15/03/1990 40.50 7
31 16/03/1990 40.50 7
32 19/03/1990 40.25 8
33 20/03/1990 39.88 8
34 21/03/1990 39.75 8
35 22/03/1990 38.50 8
36 23/03/1990 38.75 8
37 26/03/1990 39.63 9
38 27/03/1990 39.75 9

然后我从引用帖子中使用:

library(xts)
do.call(rbind, lapply(split(x, "weeks"), function(x) x[1]))

编辑:它没有用,因为我有 zoo 而不是 xts 的数据。

最佳答案

您可以简单地使用firstlast 函数。您还可以使用 headtail

# first/last
do.call(rbind, lapply(split(x, "weeks"), first))
do.call(rbind, lapply(split(x, "weeks"), last))
# head/tail
do.call(rbind, lapply(split(x, "weeks"), head, 1))
do.call(rbind, lapply(split(x, "weeks"), tail, 1))

关于r - 使用 R 中的 xts 获取每周的第一天和最后一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233899/

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