Khi ăn chỉ có một số duy nhất, sample
công trình như sample.int
(xem ?sample
). Nếu bạn muốn chắc chắn rằng nó chỉ mẫu từ vector bạn cho nó, bạn có thể làm việc với các chỉ số và sử dụng cấu trúc này:
x[sample(length(x))]
này mang đến cho bạn kết quả chính xác bất kể chiều dài của x
, và mà không cần phải thêm an if
điều kiện kiểm tra độ dài.
Ví dụ:
mylist <- list(
a = 5,
b = c(2,4),
d = integer(0)
)
mysample <- lapply(mylist,function(x) x[sample(length(x))])
> mysample
$a
[1] 5
$b
[1] 2 4
$d
integer(0)
Lưu ý: bạn có thể thay sample
bởi sample.int
để có được một tăng tốc độ ít.
Nguồn
2012-12-21 12:25:20
Câu trả lời cho câu hỏi này là tệp trợ giúp cho 'mẫu' xem'? Mẫu' và đọc kỹ phần 'Chi tiết', tại đây bạn có thể tìm thấy 'Nếu x có độ dài 1, là số (theo nghĩa là. số) và x> = 1, lấy mẫu qua mẫu diễn ra từ 1: x.' –
và có cách nào os làm cho mẫu đó chỉ có giá trị duy nhất không? – user1723765