【发布时间】:2017-07-04 16:36:25
【问题描述】:
我希望使它更简洁。我想要一个矩阵“mat”,它具有基于概率返回的二进制数据值 (0,1)。目前我已经单独创建了每一列,并将使用cbind 创建最终矩阵:
mat1=matrix(rbinom(100,1,1), 100, 1)
mat2=matrix(rbinom(100,1,1/2), 100, 1)
mat3=matrix(rbinom(100,1,1/3), 100, 1)
mat4=matrix(rbinom(100,1,1/4), 100, 1)
mat5=matrix(rbinom(100,1,1/5), 100, 1)
mat6=matrix(rbinom(100,1,1/6), 100, 1)
mat7=matrix(rbinom(100,1,1/7), 100, 1)
mat8=matrix(rbinom(100,1,1/8), 100, 1)
mat9=matrix(rbinom(100,1,1/9), 100, 1)
mat10=matrix(rbinom(100,1,1/10), 100, 1)
但是概率可以由函数 1/k 确定,其中 k 是列索引默认数,但我不确定如何引用列索引。这怎么可能简化呢?是否可以使用函数来解释所有这些重复(即 k=k+1...)。
【问题讨论】:
-
sapply(1:10, function(x) rbinom(100, 1, 1/x))? -
太棒了!我只使用 R 一个星期,我花了大约 4 个小时试图弄清楚这一点,很尴尬。谢谢