生成矩阵,其中每个新列是前一列的倍数

时间:2018-07-20 22:00:19

标签: r matrix

我从单列数据帧开始:

df <- data.frame(x1 = c(1,2))

然后,我希望创建cbind n列,其中每个新列等于前一列的值乘以常数g。对于n = 2g = .05,结果将是:

ans <- data.frame(x1 = c(1,2), x2 = c(1.05, 2.10), x3 = c(1.1025, 2.205))

1 个答案:

答案 0 :(得分:4)

为什么要使用数据框?矩阵是更好的结构。

n <- 2
g <- 0.05
x0 <- c(1, 2)
f <- (1 + g) ^ (0:n)
tcrossprod(x0, f)

#     [,1] [,2]   [,3]
#[1,]    1 1.05 1.1025
#[2,]    2 2.10 2.2050

Em ...看来我们正在为不同的储蓄和利率计算余额...