我正在尝试创建一个值表,如:
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
答案 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)