在r中生成图案化的矢量/序列

时间:2018-05-16 20:37:33

标签: r

我正在尝试创建一个值表,如:

k   P(X=k)

0     0.1
1     0.1*(0.9)
2     0.1*(0.9)^2
3     0.1*(0.9)^3

这让我想知道是否有办法在R中生成图案矢量,例如:

1,1,1,.9
1,1.9,.9
1,.9,.9,.9

这是我想要制作的东西:

x1 = c(1,1,1,1,.9)

x2 = c(1,1,1,.9,.9)

x3 = c(1,1,.9,.9,.9)

x4 = c(1,.9,.9,.9,.9)

vec_mult = x1*x2*x3*x4

y = rep(0.1,5)

k = 0:4

P = y * vec_mult

write.table(cbind(k,P), row.names=F, sep ="\t")

"k"     "P"

0       0.1

1       0.09

2       0.081

3       0.0729

4       0.06561

2 个答案:

答案 0 :(得分:2)

您正在寻找的代码是

.1*.9^(0:15)

您可以通过R中的向量取幂。

答案 1 :(得分:0)

要制作图案矢量,您只需要:

make_vec <- function(x, y, n1, n2)  c(rep(x, n1), rep(y, n2)) 
list_of_vecs <- lapply(0:5, f(n) make_vec(1, 0.9, 5 - n, n))

但是,累积产品更容易。只是做

0.1 * .9^(0:5)