В R функция sample
выбирает элемент из списка, если длина больше единицы, или принимает элемент от 1 до n, если есть только один элемент (n).
Это двойное поведение является проблемой для меня, потому что, скажем, у меня есть следующий код (я пытался упростить его):
sample(sample(10:20,sample(5,1)),1)
Когда sample(5,1)
равно 1, я получаю только один номер, в противном случае я получаю больше одного. И мне нужно просто указать, что я хочу выбрать одно из чисел, заданных sample(10:20,sample(5,1))
(или единственное, если есть только один).
Теперь я мог бы избежать этого с помощью if
:
a<-sample(10:20,sample(5,1))
if(length(a)>1){
sample(a)
} else {a}
Но это усложняется, и от этого зависит гораздо больше "семплов", и это было бы очень грязно.
Поэтому мне интересно, есть ли какая-либо функция или аргумент sample
, который выбирает единственное число, которое дается, если есть только один.
Спасибо