【发布时间】:2021-11-30 10:01:29
【问题描述】:
我有一个数据框,其中包含多天的多只股票价格:
Date Stock_Name Price
1 10-01 A 100
2 10-01 B 5
3 10-01 C 2
4 10-02 A 110
5 10-02 B 10
6 10-02 C 3
7 10-03 A 121
8 10-03 B 20
9 10-03 C 6
现在,我想根据每只股票的名称对它们进行分组,并计算它们从 10-01 到 10-03 的每日回报,理想情况下:
Date Stock_Name Price Return
1 10-01 A 100 NA
2 10-01 B 5 NA
3 10-01 C 2 NA
4 10-02 A 110 0.1
5 10-02 B 10 1
6 10-02 C 3 0.5
7 10-03 A 121 0.1
8 10-03 B 20 1
9 10-03 C 6 1
我该怎么做?
【问题讨论】:
-
如果您以可重现的格式发布数据,您将更快获得答案!
-
df %>% group_by(Stock_Name) %>% mutate(daily_return = round(Price/lag(Price) - 1,digits = 1))和df您的数据。另外,不要调用你的新变量 Return:它是一个函数名,大写 R 关闭。 -
@MonJeanJean 等人,也不要叫你的data.frame
df,df也是base R中的一个函数,即F分布的密度函数。 :-) -
@phiver Ho,不知道,谢谢!
-
在 SO 上调用数据框
df是一种常见的做法,并且通常的做法是在答案中而不是在 cmets 中发布完整的解决方案!