如何使用随机选择的列索引向量从矩阵中选择多个变量?

Ada*_*dam 1 variables r subset

希望这有一个简单的答案,我一直无法找到:

我试图写一个仿真,将比较了一些关于大矩阵的行(科目)不同子集和列(变量)的统计方法.

行的子集是使用相当简单sample()的主题ID号,但我正在与列多一点麻烦.

从本质上讲,我希望能够做的就是创建一个将被用来创建一个新的矩阵列索引号的随机样本.到目前为止,我最接近的是:

testmat <- matrix(rnorm(10000),nrow=1000,ncol=100)
column.ind <- sample(3:100,20)
teststr <- paste("testmat[,",column.ind,"]",sep="",collapse=",")
Run Code Online (Sandbox Code Playgroud)

这给了我一个字符串,其中包含testmat[,column.ind]每个采样索引号.有没有办法轻松将其插入cbind()函数中以制作新矩阵?我还有其他明显缺失的方法吗?

我已经能够使用一个循环(即做cbind(matrix,newcolumn)一遍又一遍),但是这是相当缓慢的,因为我使用的基质是相当大的,我会做很多次.我希望有一个更优雅,更快捷的联线解决方案.

Sha*_*ane 8

你试过testmat[, column.ind]吗?

行和列可以使用逻辑向量,一组名称或索引编号以相同的方式编制索引.

请看这里的例子:http://ideone.com/EtuUN.