Это документированная функция:
Если
blockquote>x
имеет длину1
, этоnumeric
(в смыслеis.numeric
) иx >= 1
, выборка по образцу происходит из1:x
. Обратите внимание, что эта удобная функция может привести к нежелательному поведению, когдаx
имеет разную длину в таких вызовах, какsample(x)
.Альтернативой является написать свою собственную функцию, чтобы избежать этой функции:
sample.vec <- function(x, ...) x[sample(length(x), ...)] sample.vec(10) # [1] 10 sample.vec(10, 3, replace = TRUE) # [1] 10 10 10
Некоторые функции с аналогичным поведением перечислены в seq vs seq_along. Когда использование seq приведет к непреднамеренным результатам?