R 中矩阵中的采样列
Sampling columns in a matrix within R
我希望能够在 R 中对矩阵列进行随机采样。
假设我有矩阵
x <- matrix(1:10, nrow = 5, ncol = 2)
x
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
要随机抽取一列,我这样做
y <- x[sample(ncol(x), size = 1)]
但是,return编辑的不是与矩阵 x 的第 1 列或第 2 列相对应的排序值列表。
基本上,我希望 y return 随机选择第 1 列或第 2 列,完全按照矩阵中所写的那样,但我似乎无法理解这里发生的事情。
有什么想法吗?
当我们使用 matrix
时,索引应该是 row, column
(类似于 data.frame
- 但在 data.frame
中,如果我们不指定 ,
,默认情况下它会给出列,因为列是单独的单位)。在矩阵中,单个单元是一个元素。因此,如果没有 row,column
,它会根据该位置提取元素。为避免这种情况,请使用 ,
。还有一件事是,当我们有一个 column/row 时,它会默认将维度降低为 drop = TRUE
?Extract
x[,sample(ncol(x), size = 1), drop = FALSE]
我希望能够在 R 中对矩阵列进行随机采样。
假设我有矩阵
x <- matrix(1:10, nrow = 5, ncol = 2)
x
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
要随机抽取一列,我这样做
y <- x[sample(ncol(x), size = 1)]
但是,return编辑的不是与矩阵 x 的第 1 列或第 2 列相对应的排序值列表。
基本上,我希望 y return 随机选择第 1 列或第 2 列,完全按照矩阵中所写的那样,但我似乎无法理解这里发生的事情。
有什么想法吗?
当我们使用 matrix
时,索引应该是 row, column
(类似于 data.frame
- 但在 data.frame
中,如果我们不指定 ,
,默认情况下它会给出列,因为列是单独的单位)。在矩阵中,单个单元是一个元素。因此,如果没有 row,column
,它会根据该位置提取元素。为避免这种情况,请使用 ,
。还有一件事是,当我们有一个 column/row 时,它会默认将维度降低为 drop = TRUE
?Extract
x[,sample(ncol(x), size = 1), drop = FALSE]