R 在公式中引用列索引值

R 在公式中引用列索引值,r,matrix,indexing,cbind,R,Matrix,Indexing,Cbind,我希望能让这更简洁。我想要一个矩阵“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(

我希望能让这更简洁。我想要一个矩阵“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…。

您可以使用for循环作为“快速脏”的解决方案:

# setting seed for comparison later on
# set.seed(1111)

# preparing an empty vector
out<-c()

# for-loop
for (k in 1:10){
  out<-c(out, rbinom(100,1,1/k))
}
out<-matrix(out, 100, 10)
#为以后的比较设置种子
#种子集(1111)
#准备空向量

out
sapply(1:10,函数(x)rbinom(100,1,1/x))
?太棒了!我只用了一个星期的时间来使用R,我花了大约4个小时试图弄明白这一点,令人尴尬。非常感谢你!
set.seed(1111)
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) 
mat<-cbind(mat1,mat2, mat3,mat4,mat5,mat6,mat7,mat8,mat9,mat10)

identical(mat, out)