【问题标题】:Replace Matrix Values with Vectors, One Column at a Time用向量替换矩阵值,一次一列
【发布时间】:2013-12-02 19:44:57
【问题描述】:

使用 R,我想创建 10 个向量(比如 10x1)并将它们的结果连接成一个矩阵(比如 10x10)。

我认为首先初始化一个空矩阵然后用感兴趣的向量逐列替换它的值可能是计算效率最高的。

这是我尝试过的。

# Initialize empty matrix
empty.m = matrix(nrow = 10, ncol = 10)

#Create vectors and attempt to insert them into matrix
for (i in 1:10) {
    empty.m[, i] = sample(10)
}

我尝试将 sample 的输出插入到矩阵 empty.m 中不起作用,产生以下错误:

Error in matrix[, 1] = vec : object of type 'closure' is not subsettable

你对我可以做些什么来完成我想要的,避免这个错误有什么建议吗?

【问题讨论】:

  • 提供的代码对我来说运行良好。有关您遇到的错误的说明,请参阅 here
  • 你叫它,@Nick!谢谢。

标签: r vector matrix subset


【解决方案1】:

创建矩阵更简单的方法是replicate

replicate(10, sample(10))

第一个10代表列数。

【讨论】:

  • 谢谢,斯文!我一直在寻找类似的功能,但找不到。
  • Sven,你知道如何对每列使用不同的采样值吗?我有一个数据框,它的每一列都有不同的值,我想从矩阵的每一列的相应列中采样?
  • @user2932774 您可以使用sapply(dat, sample),其中dat 是您的数据框的名称。
猜你喜欢
  • 2017-08-13
  • 2020-07-23
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2017-10-23
  • 1970-01-01
相关资源
最近更新 更多