R 使用sample()进行随机采样会产生意外的结果
在R中执行随机抽样时,请考虑以下事项:R 使用sample()进行随机采样会产生意外的结果,r,sample,R,Sample,在R中执行随机抽样时,请考虑以下事项: n <- 10 k <- 10 p <- 0.10 # proportion of the k objects to subsample probs <- c(0.30, 0.30, 0.30, rep(0.10/7, 7)) # probabilities for each of the k objects 我的想法是,sample()的'size'参数(即n*p)在第二次函数调用(y变量)中无法计算为1,但我在sample(
n <- 10
k <- 10
p <- 0.10 # proportion of the k objects to subsample
probs <- c(0.30, 0.30, 0.30, rep(0.10/7, 7)) # probabilities for each of the k objects
我的想法是,sample()的'size'参数(即n*p)在第二次函数调用(y变量)中无法计算为1,但我在sample()的帮助文件中找不到任何记录此错误的文件
我知道,在某些情况下,天花板()可能会表现得很奇怪,但我不相信这就是问题所在
当运行上述代码时,x被设置为整数数据类型,例如1L、2L等,这导致计算y时出错
有人知道如何解决这个问题吗?如果
x
是一个单值,sample(x)
从值1到x
进行采样(请参阅帮助的详细信息部分),或者如果x
不是整数,则从值1到floor(x)
。因此,prob
参数必须是长度为x
的向量。在代码中,probs[x]
始终是长度为1的向量,这会导致错误
x <- sort(sample(k, size = ceiling(p * k), replace = FALSE)) # works
y <- sample(x, size = n, replace = TRUE, prob = probs[x]) # throws error
Error in sample.int(x, size, replace, prob) :
incorrect number of probabilities