R 多次生成随机向量,直到条件完成
我有一个向量x=(1,2,3,4,…20),我想从这个向量生成5个元素的向量(元素可以重复),直到第一个向量的所有元素至少显示一次。然后我必须用直方图来表示数据。你知道我该怎么做吗?R 多次生成随机向量,直到条件完成,r,random,vector,R,Random,Vector,我有一个向量x=(1,2,3,4,…20),我想从这个向量生成5个元素的向量(元素可以重复),直到第一个向量的所有元素至少显示一次。然后我必须用直方图来表示数据。你知道我该怎么做吗? 提前感谢通过替换,您可以获得五个元素的样本(如果不希望替换采样,您可以将其设置为false): x通过替换,您可以获得五个元素的样本(如果您不希望替换采样,可以将其设置为false): xwhile循环似乎是一个很好的方法。此解决方案使用矩阵来捕获样本。每个样本为一行。如果您愿意的话,这样可以更容易地对每个样本执行
提前感谢通过替换,您可以获得五个元素的样本(如果不希望替换采样,您可以将其设置为false):
x通过替换,您可以获得五个元素的样本(如果您不希望替换采样,可以将其设置为false):
xwhile循环似乎是一个很好的方法。此解决方案使用矩阵来捕获样本。每个样本为一行。如果您愿意的话,这样可以更容易地对每个样本执行其他操作
set.seed(123)
base_v <- 1:20
#empty matrix to put samples in
mydat <- matrix(nrow=0,ncol=5)
while(!all(base_v %in% mydat)){
mydat <- rbind(mydat, sample(base_v,size=5,replace=T))
}
#then making the histogram is trivial
hist(mydat)
set.seed(123)
在这里,一个while循环似乎是一个很好的方法。此解决方案使用矩阵来捕获样本。每个样本为一行。如果您愿意的话,这样可以更容易地对每个样本执行其他操作
set.seed(123)
base_v <- 1:20
#empty matrix to put samples in
mydat <- matrix(nrow=0,ncol=5)
while(!all(base_v %in% mydat)){
mydat <- rbind(mydat, sample(base_v,size=5,replace=T))
}
#then making the histogram is trivial
hist(mydat)
set.seed(123)
我想这就是你想要的:
x <- 1:20
s <- integer(0)
while (! all(x %in% s)) {
s <- c(s, sample(x, 5, TRUE))
}
x我想这就是你想要的:
x <- 1:20
s <- integer(0)
while (! all(x %in% s)) {
s <- c(s, sample(x, 5, TRUE))
}
x可能是使用?示例
一个简单的while循环?是的,可以使用示例完成,但我无法设置停止while循环的条件。我在下面提供了循环的答案。可能是使用?示例
一个简单的while循环?是的,可以使用示例完成,但是我不能设置停止while循环的条件。我在下面提供了循环的答案。我修改了代码,并为每个循环得到了一些直方图。是否有一种方法可以将结果合并到一个直方图中。我需要每个变量在随机向量中的分布。代码如下:x,但这不会保存示例。OP表示他们想要生成一个直方图。@user3949008请看上面的注释。我稍微编辑了一下以保存结果并绘制直方图。我修改了代码,为每个循环得到了一些直方图。是否有一种方法可以将结果合并到一个直方图中。我需要每个变量在随机向量中的分布。代码如下:x,但这不会保存示例。OP表示他们想生成一个直方图。@user3949008请看上面的注释,我稍微编辑了一下以保存结果并绘制直方图。我相信您的代码很好,但每个循环必须捕获每个数字显示的次数,并最终显示直方图中的所有数据,其中一个数字只显示一次。这就是停止循环的条件。你测试过吗?我忘了在柱状图中设置分隔符,但是如果您查看表(mydat)
您会发现只有一个样本的数字。我相信您的代码很好,但每个循环必须捕获每个数字显示的次数,并最终显示柱状图中的所有数据,其中一个数字只显示一次。这就是停止循环的条件。你测试过吗?我忘了在柱状图中设置分隔符,但是如果您查看表(mydat)
您会发现只有一个样本的数字。这正是我需要的,这正是我需要的