【发布时间】:2018-01-13 03:11:02
【问题描述】:
我正在尝试在 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,按列分隔)。任何建议将不胜感激。
【问题讨论】:
-
r 有实际的
arrays。这些听起来像data.frames。如果您使用正确的术语或表明您确实在使用数组,那么帮助 wld 会更容易。区别很重要。