[英]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.