尝试使用 R 中的 for 循环进行简单的迭代计算

利他林

我正在尝试在 R 中设置一个简单的 for 循环计算,其中数据框填充有计算值。

这是它的要点:
- 我有一个 10 列宽和 30 行长的数据框;列是模拟回报的向量,行是一个月的天数。
- 我有另一个相同大小的数据框,其中第一行是今天的股票价格,所有其他行都是空的。
- 我只想使用给定的起始价格和第一个数据帧中的模拟回报,使用如下基本公式,用计算出的价格迭代填充第二个数据帧的其余部分:

价格(今天)= 价格(昨天)*(1 + 模拟收益(今天))

下面是一个例子:

## This makes a 30x10 dataframe of random simulated returns
ret = replicate(10, rnorm(30, mean = 0.1, sd = 0.25))

## This makes the empty 30x10 dataframe where prices will go
pri = ret
pri[] = NA

## This fills the first row of the second dataframe with given values (today's price)
given = replicate(10, 1234)
pri[1,] = given

在这一点之后,我在设计正确的 for 循环时遇到了问题。我不确定如何构建语法以进行迭代,以便根据第一个数据帧中时间 (t) 的相应返回值,对于第二个数据帧中的每个空行,空单元格被一个一个填充,并且使用我上面描述的基本公式,第二个数据帧中前一个时间段 (t-1) 的价格。

我想要的想法是这样的

pri[2,] = pri[1,] * (1 + ret[2,])

但是对于连续第二个数据帧中的所有剩余行(行 2:30,按列分隔)。任何建议将不胜感激。

MKR

sapply下面解释了使用基于函数的解决方案逻辑是用模拟回报因子填充价格矩阵,并用今天的价格填充第一行。sapply将一次取 1 列并根据Price(today) = Price(yesterday) * (1 + Simulated Return(today))该列的返回值执行计算

## This makes a 30x10 dataframe of random simulated returns. 
## Notice I have changed it to data.frame
ret = data.frame(replicate(10, rnorm(30, mean = 0.1, sd = 0.25))

## This makes the empty 30x10 dataframe where prices will go
pri = ret
## pri[] = NA -- no need. Let the factor be available for dates.

## This fills the first row of the second dataframe with given values (today's price)
given = replicate(10, 1234)
pri[1,] = given

# Function that performs calculation on simulated price based on previous day
poputate_value <- function(x){
  for(i in 2:length(x)){
    x[i] <- x[i-1] * (1 + x[i])
  }
  x
}

# Function will be applied on all columns and value will be returned to result
result <- sapply(pri, poputate_value)

## > head(result)

           X1       X2        X3       X4        X5       X6        X7        X8        X9       X10
[1,] 1234.000 1234.000 1234.0000 1234.000 1234.0000 1234.000 1234.0000 1234.0000 1234.0000 1234.0000
[2,] 1038.855 1580.027  991.9454 1975.709 1447.9575 1733.466  856.0908  928.6600 1119.1489 1011.4543
[3,] 1113.040 1411.237  807.3748 1791.978 1333.1235 1957.516  972.3401  874.6964 1133.1161 1095.7755
[4,] 1242.637 1104.528  906.7417 1443.040  944.8004 2198.782 1242.2810 1314.4354 1722.6803 1478.0986
[5,] 1822.834 1224.279 1245.4425 1381.826 1295.5291 2887.676 1349.2818 1367.2311  908.4315  780.4360
[6,] 1690.193 1218.778  883.5074 2126.224 1340.3102 2994.756 1542.1661 1300.4834  998.1949  702.0578

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中尝试for循环

来自分类Dev

使用先前计算的结果进行迭代计算-R

来自分类Dev

使用先前计算的结果进行迭代计算-R

来自分类Dev

在R中的数据帧的列中进行迭代(循环)

来自分类Dev

使用FOR循环在R中按组迭代日期

来自分类Dev

尝试访问 R 中循环内的变量

来自分类Dev

优化嵌套循环以在R中的矩阵上进行计算

来自分类Dev

如何在R中向量化for循环以进行坐标计算?

来自分类Dev

如何使用R中的函数对矩阵进行迭代?

来自分类Dev

如何使用R中的函数对矩阵进行迭代?

来自分类Dev

javascript循环承诺使用参数中的数组进行迭代

来自分类Dev

使用For循环进行迭代时从列表中删除项目

来自分类Dev

熊猫-使用数据框中的嵌套for循环进行迭代

来自分类Dev

尝试使用R中的plm在stata中重现xtreg

来自分类Dev

R中的for循环将迭代一个简单函数并存储结果

来自分类Dev

了解R中的简单for循环

来自分类Dev

使用r中的循环函数计算每天的常数值?

来自分类Dev

(R)我正在尝试使用if()语句引用数据框中的一列以计算其他多个列

来自分类常见问题

我尝试使用R中的for循环为二维矩阵提供值,但是它给了我意外的NA值

来自分类Dev

我尝试使用R中的for循环为二维矩阵提供值,但是它给了我意外的NA值

来自分类Dev

尝试使用R中的转换规则创建矩阵

来自分类Dev

尝试使用并行时,R中的%dopar%无法正常工作

来自分类Dev

使用R中的数据帧名称进行循环

来自分类Dev

如何使用数据框中的值作为 R 中的 for 循环迭代器?

来自分类Dev

尝试使用R计算中位数时出现问题

来自分类Dev

R:尝试使用 dplyr 过滤器功能进行循环时出错

来自分类Dev

尝试使用skimage.transform在Python中旋转简单图片

来自分类Dev

GCC不能对这个简单的循环进行矢量化处理(“无法计算迭代次数”),却无法在同一代码中管理类似的循环?

来自分类Dev

GCC不能对这个简单的循环进行矢量化处理(“无法计算迭代次数”),却无法在同一代码中管理类似的循环?

Related 相关文章

  1. 1

    在R中尝试for循环

  2. 2

    使用先前计算的结果进行迭代计算-R

  3. 3

    使用先前计算的结果进行迭代计算-R

  4. 4

    在R中的数据帧的列中进行迭代(循环)

  5. 5

    使用FOR循环在R中按组迭代日期

  6. 6

    尝试访问 R 中循环内的变量

  7. 7

    优化嵌套循环以在R中的矩阵上进行计算

  8. 8

    如何在R中向量化for循环以进行坐标计算?

  9. 9

    如何使用R中的函数对矩阵进行迭代?

  10. 10

    如何使用R中的函数对矩阵进行迭代?

  11. 11

    javascript循环承诺使用参数中的数组进行迭代

  12. 12

    使用For循环进行迭代时从列表中删除项目

  13. 13

    熊猫-使用数据框中的嵌套for循环进行迭代

  14. 14

    尝试使用R中的plm在stata中重现xtreg

  15. 15

    R中的for循环将迭代一个简单函数并存储结果

  16. 16

    了解R中的简单for循环

  17. 17

    使用r中的循环函数计算每天的常数值?

  18. 18

    (R)我正在尝试使用if()语句引用数据框中的一列以计算其他多个列

  19. 19

    我尝试使用R中的for循环为二维矩阵提供值,但是它给了我意外的NA值

  20. 20

    我尝试使用R中的for循环为二维矩阵提供值,但是它给了我意外的NA值

  21. 21

    尝试使用R中的转换规则创建矩阵

  22. 22

    尝试使用并行时,R中的%dopar%无法正常工作

  23. 23

    使用R中的数据帧名称进行循环

  24. 24

    如何使用数据框中的值作为 R 中的 for 循环迭代器?

  25. 25

    尝试使用R计算中位数时出现问题

  26. 26

    R:尝试使用 dplyr 过滤器功能进行循环时出错

  27. 27

    尝试使用skimage.transform在Python中旋转简单图片

  28. 28

    GCC不能对这个简单的循环进行矢量化处理(“无法计算迭代次数”),却无法在同一代码中管理类似的循环?

  29. 29

    GCC不能对这个简单的循环进行矢量化处理(“无法计算迭代次数”),却无法在同一代码中管理类似的循环?

热门标签

归档