用R中的loop进行计算
我刚开始使用R进行统计分析,我还在学习。我在R中创建循环时遇到了一个问题。我遇到了以下情况,我想知道是否有人可以帮助我。对我来说这似乎是不可能的,但对你们中的一些人来说这只是小菜一碟。我有不同年份不同公司的数据集。对于每个公司,我有每日股价数据,我需要使用以下等式计算每个公司每天的股票回报率=用R中的loop进行计算,r,R,我刚开始使用R进行统计分析,我还在学习。我在R中创建循环时遇到了一个问题。我遇到了以下情况,我想知道是否有人可以帮助我。对我来说这似乎是不可能的,但对你们中的一些人来说这只是小菜一碟。我有不同年份不同公司的数据集。对于每个公司,我有每日股价数据,我需要使用以下等式计算每个公司每天的股票回报率=(Pt-Pt-1)/Pt-1,其中Pt是当天的股价,Pt-1是前一天的股价。 我拥有的数据集如下所示: Date Firm Price 1/1/2009 A 2 2/
(Pt-Pt-1)/Pt-1
,其中Pt是当天的股价,Pt-1是前一天的股价。
我拥有的数据集如下所示:
Date Firm Price
1/1/2009 A 2
2/1/2009 A 2.5
3/1/2009 A 5
4/1/2009 A 4
1/1/2010 A 1.5
2/1/2010 A 1.8
3/1/2010 A 6
4/1/2010 A 7
1/1/2009 B 16
2/1/2009 B 15
3/1/2009 B 10
4/1/2010 B 11
1/1/2010 B 20
2/1/2010 B 13
3/1/2010 A 12
4/1/2010 A 10
我需要的结果如下
Date Firm Price Return
1/1/2009 A 2 NA
2/1/2009 A 2.5 0.25
3/1/2009 A 5 1
4/1/2009 A 4 -0.2
1/1/2010 A 1.5 -0.625
2/1/2010 A 1.8 0.2
3/1/2010 A 6 2.33333
4/1/2010 A 7 0.166667
1/1/2009 B 16 NA
2/1/2009 B 15 -0.0625
3/1/2009 B 10 -0.3333
4/1/2010 B 11 0.1
1/1/2010 B 20 0.81818
2/1/2010 B 13 -0.35
3/1/2010 A 12 -0.07692
4/1/2010 A 10 -166667
我希望你能在这个问题上帮助我。先谢谢你 使用dplyr:
library(dplyr)
df %>%
group_by(Firm) %>%
mutate(Return = (Price - lag(Price)) / lag(Price))
使用dplyr:
library(dplyr)
df %>%
group_by(Firm) %>%
mutate(Return = (Price - lag(Price)) / lag(Price))
我认为这应该行得通(我用过这个):
#定义计算百分比变化的函数
myFun我认为这应该有效(我用过这个):
#定义计算百分比变化的函数
myFun您还需要(公司)
@Sotos和@GGamba对您的帮助表示感谢,但我在安装packagedplyr
时遇到问题。我从R收到此消息:安装中出现警告。软件包:软件包“dplyr”不可用(适用于R版本3.1.1)
。我不知道该怎么做才能在这里为您找到问题的答案:您还需要group_by(Firm)
@Sotos和@GGamba感谢您的帮助,但我在安装packagedplyr
时遇到问题。我从R收到此消息:安装中出现警告。软件包:软件包“dplyr”不可用(适用于R版本3.1.1)
。我不知道该怎么做才能在这里为你们找到问题的答案:Related-Related-谢谢@staove7对你们的帮助。代码运行得很好。我还需要参考@Sotos的另一个答案:谢谢@staove7对您的帮助。代码运行得很好。我还需要参考@Sotos的另一个答案: