gpt4 book ai didi

r - 从公司的每日返回中找出每周返回

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

我的数据看起来像这样

co_code company_name co_stkdate dailylogreturn
1 A 01-01-2000 0.76
1 A 02-01-2000 0.75
.
.
.
1 A 31-12-2019 0.54
2 B 01-01-2000 0.98
2 B 02-01-2000 0.45

。。等等

我想找到每周返回,它等于一周的每日日志返回之和。

输出应该是这样的

 co_code company_name co_stkdate weeklyreturns
1 A 07-01-2000 1.34
1 A 14-01-2000 0.95
.
.
.
1 A 31-12-2019 0.54
2 B 07-01-2000 0.98
2 B 14-01-2000 0.45

我尝试应用 quantmod 包中的函数,但这些函数仅适用于 xts 对象。 xts 对象中的另一个问题是无法使用函数“group_by()”。因此,我只想在通常的数据框中工作。

代码看起来像这样

library(dplyr)
### Reading txt file
df <- read.csv("33339_1_120_20190405_165913_dat.csv")

计算每日日志返回

df <- mutate(df, "dailylogrtn"=log(nse_returns)) %>% as.data.frame()

格式化日期

df$co_stkdate<- as.Date(as.character(df$co_stkdate), format="%d-%m-%Y")

最佳答案

由于我们不知道您每周有多少天获得 dailylogreturn,因此可能存在 NA,我建议按周和年分组:

#sample data
df <- data.frame(co_stkdate = rep(seq.Date(from = as.Date("2000-01-07"), to = as.Date("2000-02-07"), by = 1), 2),
dailylogreturn = abs(round(rnorm(64, 1, 1), 2)),
company_name = rep(c("A", "B"), each = 32))


df %>%
mutate(co_stkdate = as.POSIXct(co_stkdate),
year = strftime(co_stkdate, "%W"),
week = strftime(co_stkdate, "%Y")) %>%
group_by(company_name, year, week) %>%
summarise(weeklyreturns = sum(dailylogreturn, na.rm = TRUE))

# A tibble: 12 x 4
# Groups: company_name, year [12]
company_name year week weeklyreturns
<fct> <chr> <chr> <dbl>
1 A 01 2000 6.31
2 A 02 2000 6.11
3 A 03 2000 6.02
4 A 04 2000 8.27
5 A 05 2000 4.92
6 A 06 2000 0.5
7 B 01 2000 1.82
8 B 02 2000 6.6
9 B 03 2000 7.55
10 B 04 2000 7.63
11 B 05 2000 7.54
12 B 06 2000 1.03


关于r - 从公司的每日返回中找出每周返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586925/

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