我正在尝试从0到36的序列中进行采样。但是如果采样0,我希望循环终止。这是我到目前为止所做的,它不起作用,
x <- seq ( 0, 36, by=1 )
for ( i in 1:100) {
x<- sample (x, 1, replace = F, prob=NULL)
if (x[i] == 0){
break
}
print("x[i]")
}
谢谢,Pilara
答案 0 :(得分:1)
您必须将采样过程的所有结果存储在矢量中。你可以这样做:
set.seed(12345) # Set seed to make results reproducible.
# Change the seed for different random numbers
x <- seq(0, 36, by = 1)
y <- sample(x, 1) # Initialize vector of sampling results
while (tail(y, 1) != 0){
y <- c(y, sample(x, 1)) # Append results to vector
}
> y
# [1] 26 32 28 32 16 6 12 18 26 36 1 5 27 0
答案 1 :(得分:1)
我只是稍微调整你的代码。只需使用另一个变量进行存储。
x <- seq ( 0, 36, by=1 )
y <- c()
for ( i in 1:100) {
y[i]<- sample (x, 1, replace = F, prob=NULL)
if (y[i] == 0){
break
}
print(y[i])
}
希望这有帮助。