首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滚动10年回报R

滚动10年回报R
EN

Stack Overflow用户
提问于 2022-05-02 06:11:31
回答 1查看 90关注 0票数 0

我想计算一下从1965年到2021年的10年滚动回报。这意味着结果应该是一个有10年(1965-1974年、1966-1975年、1967-1976年等)回报的表格或数据框架。就像这样:

为了计算10年收益,将1974年(例如1975年12月30日)的最后一个可用股票价格除以1965年的第一个可用股票价格(例如。01/04/1965)并减去1。

10年回报=(1974年最后一次股票价格/1965年第一次股票价格) -1

然后自动计算随后年份(1966-1975年、1967-1976年、1968-1977年等)。

我不知道如何在R演播室实现这一点。

以下是我的密码。股票价格在N225Adjusted栏中。

代码语言:javascript
复制
library(quantmod)
data.N225 <- getSymbols("^N225",from="1965-01-01", to="2022-03-30", auto.assign=FALSE, src='yahoo') # funktion getSymbols wenn wir Kapitalmarkt haben wollten 
class(data.N225)
data.N225[c(1:3, nrow(data.N225)),]

data.N225<- na.omit(data.N225)
N225 <- data.N225[,6]

N225$DiskreteRendite= Delt(N225$N225.Adjusted)
N225[c(1:3,nrow(N225)),]
options(digits=5)
N225$dailyretrunsplusone <- N225$DiskreteRendite+1

N225 <- fortify.zoo(N225)
N225 <- N225[,c(1,2,4)]

最大的问题是我需要一个包含日期的代码。

我希望你能帮助我。提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-02 07:27:57

我用了几个包,但你不需要scales

代码语言:javascript
复制
library(quantmod)
library(scales)
library(tidyverse)
library(lubridate)

data <- getSymbols("^N225", from = "1965-01-01", to = "2022-03-30", auto.assign = F, src = "yahoo")

df <- as_tibble(data.frame(Date = index(data), coredata(data)))
df %>%
  na.omit() %>% 
  group_by(year = year(Date)) %>% 
  summarise(fprice = first(N225.Adjusted), lprice = last(N225.Adjusted)) %>% 
  mutate(Returns = (lprice/lag(fprice, n = 9L))-1) %>%
  na.omit() %>% 
  mutate(year_from_to = paste(year-9, year, sep = "-"), Returns = percent(Returns)) %>% 
  select(year_from_to, Returns)

给出以下输出

代码语言:javascript
复制
#> # A tibble: 49 × 2
#>    year_from_to Returns
#>    <chr>        <chr>  
#>  1 1965-1974    205.07%
#>  2 1966-1975    203.61%
#>  3 1967-1976    246.26%
#>  4 1968-1977    284.04%
#>  5 1969-1978    241.96%
#>  6 1970-1979    173.40%
#>  7 1971-1980    255.03%
#>  8 1972-1981    183.22%
#>  9 1973-1982    53.20% 
#> 10 1974-1983    132.29%
#> # … with 39 more rows

如有需要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72082917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档