簡體   English   中英

在R中隨機選擇一個樣本

[英]Randomly select a sample in R

我必須找到一種從集合S中隨機選擇R中樣本的方法。集合S由I1集合中的樣本組成。

I1 <- c(1,2,3,4,5,6)
s1 <- c(1,2,1)
s2 <- c(1,5,6)
s3 <- c(2,1,1)
s4 <- c(5,1,1,6)
s5 <- c(3,4)
s6 <- c(4,3) 

每個樣本都有一個從0到1分配的P值。我需要找到生成0到1的數字並選擇相應樣本的最佳方法。 這就是我所做的:

x <- runif(1, min = 0, max = 100) 
if(x>=0 & x<=20) {                
  print("s1")
}
if (x>=21 & x<=30) {
  print("s2")
}
if(x>=31 & x<=40) {
  print("s3")
}
if(x>=41 & x<=65) {
  print("s4")
}
if(x>=66 & x<=80) {
  print("s5")
}
if(x>=81 & x<=100) {
  print("s6")
}

有誰知道更好的方法嗎?

sample將是最簡單的方法。 據我了解,您想獲取集合的名稱嗎?

如果是這樣,則使用

sample(c('s1', 's2', 's3', 's4', 's5', 's6'), size = 1, prob = c(20, 10, 10, 25, 15, 20))

如果要獲取集合本身,請使用集合列表作為繪制對象(您需要在語句末尾添加[[1]] ):

sample(list(s1, s2, s3, s4, s5, s6), size = 1, prob = c(20, 10, 10, 25, 15, 20))[[1]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM