gpt4 book ai didi

随机抽样 - 矩阵

转载 作者:行者123 更新时间:2023-12-04 21:53:54 29 4
gpt4 key购买 nike

如何从填充有 1 和 0 的矩阵中抽取 n 个随机点的样本?

a=rep(0:1,5)
b=rep(0,10)
c=rep(1,10)
dataset=matrix(cbind(a,b,c),nrow=10,ncol=3)

dataset
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 1 0 1
[3,] 0 0 1
[4,] 1 0 1
[5,] 0 0 1
[6,] 1 0 1
[7,] 0 0 1
[8,] 1 0 1
[9,] 0 0 1
[10,] 1 0 1

我想确保我取 N 个样本的位置(行,列)是随机的。

我知道 sample {base}但它似乎不允许我这样做,我知道的其他方法是空间方法,它们将迫使我添加 x,y 并将其更改为空间对象,然后再次返回正常矩阵。

更多信息

随机我的意思是也在“矩阵空间”内传播,例如如果我对 4 个点进行采样,我不希望有 4 个相邻点,我希望它们分布在“矩阵空间”中。

知道我取出随机点的矩阵中的位置(行,列)也很重要。

最佳答案

如果您了解 R 在内部将矩阵表示为向量,则有一种非常简单的方法可以对矩阵进行采样。

这意味着您可以使用 sample直接在你的矩阵上。例如,假设您要对 10 个点进行替换采样:

n <- 10
replace=TRUE

现在只需使用 sample在你的矩阵上:
set.seed(1)
sample(dataset, n, replace=replace)
[1] 1 0 0 1 0 1 1 0 0 1

为了演示这是如何工作的,让我们将其分解为两个步骤。步骤 1 是生成采样位置的索引,步骤 2 是在矩阵中找到这些位置:
set.seed(1)
mysample <- sample(length(dataset), n, replace=replace)
mysample
[1] 8 12 18 28 7 27 29 20 19 2

dataset[mysample]
[1] 1 0 0 1 0 1 1 0 0 1

而且,嘿,快,这两种方法的结果是相同的。

关于随机抽样 - 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109778/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com