使用mapply预测R中的现金流量

时间:2019-04-25 16:15:51

标签: r mapply

我正在尝试为许多不同的股票预测39年的未来自由现金流。理想情况下,我想运行的功能是计算给定年份股票的未来现金流量,并将该值应用于R数据框中的新列。因此,我们将在数据框中添加39列,每年增加一列。

我已经正确设置了数据框架,并创建了一个函数来计算给定年份中证券的未来自由现金流。我苦苦挣扎的是,我不太清楚如何将结果附加到原始数据框中。我正在使用mapply及其函数将自由现金流量预测重复39次。

head(screen)

date          Ticker         FCF.t
1 2019-04-25  AAPL US Equity 70438.81
2 2019-04-25  MSFT US Equity 36153.81
3 2019-04-25  AMZN US Equity 29052.70
4 2019-04-25 GOOGL US Equity 34095.22
5 2019-04-25    FB US Equity 32829.72
6 2019-04-25 BRK/A US Equity 23999.81

下面是我创建的函数,该函数可以计算未来的自由现金流并对其折现。 i是年份,g是增长率,成本是折现率

compound<-function(i,g,cost){

  fcf<-screen$FCF.t*((1+g)^i)
  fcf<-fcf/((1+cost)^i)
  screen$fcf<-fcf
  print(screen)
}

然后我使用mapply进行迭代

mapply(compound,2:40,.03,.08)

我认为这会修改原始数据帧,但它会在控制台中提供输出,例如下面39次不同的时间。

    fcf
1    1.219299e+04
2    6.258243e+03
3    5.029038e+03
4    5.901900e+03

我希望能得到以下类似的东西

date          Ticker         FCF.t    fcf2         fcf3
1 2019-04-25  AAPL US Equity 70438.81 projection  projection
2 2019-04-25  MSFT US Equity 36153.81 projection  projection
3 2019-04-25  AMZN US Equity 29052.70 projection  projection
4 2019-04-25 GOOGL US Equity 34095.22 projection  projection
5 2019-04-25    FB US Equity 32829.72 projection  projection
6 2019-04-25 BRK/A US Equity 23999.81 projection  projection

我最终使用以下解决方案:

t<-39
k<-nrow(screen)
fcf<-matrix(NA,k,t)


for(i in 2:40){

  fcf[,i]<-screen$FCF.t*((1+screen$Sls.3Yr.Avg.Gr)^i)/((1+wacc)^i)


}

fcf<-fcf[,-1]



fcf<-as.data.frame(fcf)


transition<-cbind(screen,fcf)

0 个答案:

没有答案