我试图在 1 和
n
之间选择一个随机值,给定 n
的向量。这是我当前的解决方案:
n <- c(10, 5, 35, 16, 2)
sapply(n, function (x) sample(seq_len(x), 1))
但是,这似乎是一个低效的解决方案,因为我每次都循环
n
并从 1:n 采样。有没有更有效的方法?
你可以不用循环来做到这一点
ceiling(n * runif(n))
根据文档,如果
n
是向量,则 runif(n)
被视为 runif(length(n))
。