gpt4 book ai didi

r - 在2个日期之间对数据框进行分组

转载 作者:行者123 更新时间:2023-12-03 08:57:29 26 4
gpt4 key购买 nike

自1993年以来,我一直在使用巴西指数(IBOV)的每日 yield ,我试图找出对两个日期之间的时间段进行分类的最佳方法。

数据帧(IBOV_RET)如下:

head(IBOV_RET)
DATE 1D_RETURN
1 1993-04-28 -0.008163265
2 1993-04-29 -0.024691358
3 1993-04-30 0.016877637
4 1993-05-03 0.000000000
5 1993-05-04 0.033195021
6 1993-05-05 -0.012048193
...

我将2个变量 DATE1DATE2设置为日期
DATE1 <- as.Date("2014-04-01")
DATE2 <- as.Date("2014-05-05")

我能够使用以下代码创建一个新的子集:
TEST <- IBOV_RET[IBOV_RET$DATE >= DATE1 & IBOV_RET$DATE <= DATE2,]

它起作用了,但是我想知道是否有更好的方法可以使用 subset在2个日期之间对数据进行子集化。

最佳答案

正如@MrFlick所指出的那样,您不会避开子集的基本逻辑。一种简化子集特定数据框架的方法是定义一个函数,该函数接受示例中的DATE1DATE2两个输入,然后根据这些子集参数返回IBOV_RET的子集。

myfunc <- function(x,y){IBOV_RET[IBOV_RET$DATE >= x & IBOV_RET$DATE <= y,]}

DATE1 <- as.Date("1993-04-29")
DATE2 <- as.Date("1993-05-04")

Test <- myfunc(DATE1,DATE2)

#> Test
# DATE X1D_RETURN
#2 1993-04-29 -0.02469136
#3 1993-04-30 0.01687764
#4 1993-05-03 0.00000000
#5 1993-05-04 0.03319502

您也可以直接在 myfunc中输入特定日期:
myfunc(as.Date("1993-04-29"),as.Date("1993-05-04")) #will produce the same result

关于r - 在2个日期之间对数据框进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622338/

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