【问题标题】:How do you select multiple variables from a matrix using a randomly selected vector of column indices?如何使用随机选择的列索引向量从矩阵中选择多个变量?
【发布时间】:2011-03-17 22:41:20
【问题描述】:

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

我正在尝试编写一个模拟,该模拟将比较大型矩阵的不同行(主题)和列(变量)子集上的一些统计过程。

使用主题 ID 号的 sample() 可以轻松实现行子集,但我在列方面遇到了更多麻烦。

基本上,我想做的是创建一个列索引号的随机样本,然后将其用于创建一个新矩阵。到目前为止,最接近我的是:

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

这给了我一个字符串,其中每个采样的索引号都有一个testmat[,column.ind]。有什么方法可以轻松地将其插入cbind() 函数以创建新矩阵?我还有其他明显的方法吗?

我已经能够使用循环来做到这一点(即cbind(matrix,newcolumn) 一遍又一遍),但这相当慢,因为我使用的矩阵非常大,我会这样做很多次。我希望有一个更优雅、更快捷的双行解决方案。

【问题讨论】:

    标签: r variables subset


    【解决方案1】:

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

    行和列的索引方式与逻辑向量、名称集或索引编号相同。

    查看示例:http://ideone.com/EtuUN

    【讨论】:

    • 哈!那行得通。我知道这很容易,我只是在空白。 :) 当它允许我时,我会接受你的回答......谢谢!
    猜你喜欢
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多