sample(x,n)
参数是向量,以及您要采样多少次
sample(c(5,9),1) returns either 5 or 9
但是
sample(5,1) returns 1,2,3,4, or 5?
我已经阅读了帮助部分:
如果x的长度为1,则为数字(即is.numeric),并且x> = 1, 通过样本采样从1:x开始。注意这个方便 当x的长度变化不定时,特征可能会导致不良行为 诸如sample(x)之类的调用。请参阅示例。
但是有办法使它不这样做吗?还是只需要包含一个if语句就可以避免这种情况。
答案 0 :(得分:3)
还是我只需要包含一个if语句来避免这种情况。
是的,很不幸。像这样:
result = if(length(x) == 1) {x} else {sample(x, ...)}
答案 1 :(得分:2)
这是另一种方法:您可以像这样简单地从向量中子集随机值-
set.seed(4)
x <- c(5,9)
x[sample(length(x), 1)]
[1] 9
x <- 5
x[sample(length(x), 1)]
[1] 5