我在R
中有一个列表对象 dl <- list(matrix(c(1,5,.2,.7), nrow=2,dimnames=list(c(),c("x","y"))), matrix(c(0,1,.01,.4), nrow=2,dimnames=list(c(),c("x","y") )))
我想在列表的每个元素中添加另一列z <- rbinom(2,1,y)
。即z
是bernoulli随机变量,每个列表具有概率向量y
。到目前为止我做了:
a=dl[[1]]
a=data.frame(a)
a$z <- with(a, rbinom(2,1,y))
b=dl[[2]]
b=data.frame(b)
b$z <- with(b, rbinom(2,1,y))
但这种编码看起来很混乱。
答案 0 :(得分:1)
这是你在找什么?
> lapply(dl,FUN=function(mat) z <- cbind(mat,rbinom(2,1,mat[,2])))
[[1]]
x y
[1,] 1 0.2 0
[2,] 5 0.7 0
[[2]]
x y
[1,] 0 0.01 0
[2,] 1 0.40 1