首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从R中的大数据帧创建股票指数等

从R中的大数据帧创建股票指数等
EN

Stack Overflow用户
提问于 2020-11-30 23:29:04
回答 1查看 238关注 0票数 0

我有一个名为stockdata的数据框架,其中包括数年来几只股票的收盘价。数据框架的样式如下:

代码语言:javascript
复制
      date close  ticker  stock.name
2001-09-06  3.06  LAGR   Lagercrantz
2001-09-07  2.89  LAGR   Lagercrantz
2001-09-09  2.67  LAGR   Lagercrantz
2001-09-10  2.67  LAGR   Lagercrantz
2001-09-11  2.56  LAGR   Lagercrantz
2001-09-12  2.24  LAGR   Lagercrantz
2001-09-13  2.44  LAGR   Lagercrantz
2001-09-06 20.70  MEAB   Malmbergs Elektriska
2001-09-07 20.60  MEAB   Malmbergs Elektriska
2001-09-09 20.40  MEAB   Malmbergs Elektriska
2001-09-10 20.50  MEAB   Malmbergs Elektriska
2001-09-11 20.50  MEAB   Malmbergs Elektriska
2001-09-12 20.70  MEAB   Malmbergs Elektriska
2001-09-13 20.60  MEAB   Malmbergs Elektriska
2011-07-06 1.8018 HTRO   Hexatronic
2011-07-07 1.8018 HTRO   Hexatronic
2011-07-08 1.8318 HTRO   Hexatronic
2011-07-11 1.8394 HTRO   Hexatronic
2011-07-12 1.8394 HTRO   Hexatronic
2011-07-13 1.8769 HTRO   Hexatronic

因此,我想:

  1. 添加了一列名为percentage的列,该列应根据每只股票的第一次上市日期以百分比表示股票的性能。

  1. 根据数据框架中所有股票的收盘价创建一个股票指数。由于股票数量随时间而变化(不同的推出日期、退市日期等),因此在计算新股票指数的百分比和价格时需要考虑这一点。

做这些事情最简单的方法是哪一种?有没有办法不用循环遍历所有的数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-01 00:11:45

数据

代码语言:javascript
复制
df <- read.table(text = "
date close  ticker  stock.name
2001-09-06  3.06  LAGR   Lagercrantz
2001-09-07  2.89  LAGR   Lagercrantz
2001-09-09  2.67  LAGR   Lagercrantz
2001-09-10  2.67  LAGR   Lagercrantz
2001-09-11  2.56  LAGR   Lagercrantz
2001-09-12  2.24  LAGR   Lagercrantz
2001-09-13  2.44  LAGR   Lagercrantz
2001-09-06 20.70  MEAB   'Malmbergs Elektriska'
2001-09-07 20.60  MEAB   'Malmbergs Elektriska'
2001-09-09 20.40  MEAB   'Malmbergs Elektriska'
2001-09-10 20.50  MEAB   'Malmbergs Elektriska'
2001-09-11 20.50  MEAB   'Malmbergs Elektriska'
2001-09-12 20.70  MEAB   'Malmbergs Elektriska'
2001-09-13 20.60  MEAB   'Malmbergs Elektriska'
2011-07-06 1.8018 HTRO   Hexatronic
2011-07-07 1.8018 HTRO   Hexatronic
2011-07-08 1.8318 HTRO   Hexatronic
2011-07-11 1.8394 HTRO   Hexatronic
2011-07-12 1.8394 HTRO   Hexatronic
2011-07-13 1.8769 HTRO   Hexatronic
  ",
  header = TRUE)

1和2.

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

df %>%
  group_by(ticker) %>%
  mutate(
    percentage = close / close[date == min(date)],
    average = mean(percentage))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65082640

复制
相关文章

相似问题

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