如何从 R 中 12.5 的百分比分布创建向量
How to create a vector from percent distribution with 12.5 in R
如何为此分布创建大小为 100 的向量?
Value %
0 75
1 12.5
2 12.5
我试过了:
x <- c(rep(0, 75), rep(1, 12.5), rep(2, 12.5))
> x
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[39] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
[77] 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
> length(x)
[1] 99
正如评论中所指出的,当您要求 ½ 元素具有值时,您期望什么?
解决它的一种方法是掷骰子。
values <- 0:2
pcts <- c(75, 12.5, 12.5)
n <- sum(pcts) ## if you need a different number than 100,
## some modifications in the following is required.
res1 <- rep(values, floor(pcts))
但是最后一个怎么办?问机:
set.seed(1512)
res2 <- sample(values, n - length(res1), prob=pcts)
result <- c(res1, res2)
如果你想让它可重现(即每次你 运行 脚本时采样 returns 相同的数字),你需要 set.seed
.
如何为此分布创建大小为 100 的向量?
Value %
0 75
1 12.5
2 12.5
我试过了:
x <- c(rep(0, 75), rep(1, 12.5), rep(2, 12.5))
> x
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[39] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
[77] 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
> length(x)
[1] 99
正如评论中所指出的,当您要求 ½ 元素具有值时,您期望什么?
解决它的一种方法是掷骰子。
values <- 0:2
pcts <- c(75, 12.5, 12.5)
n <- sum(pcts) ## if you need a different number than 100,
## some modifications in the following is required.
res1 <- rep(values, floor(pcts))
但是最后一个怎么办?问机:
set.seed(1512)
res2 <- sample(values, n - length(res1), prob=pcts)
result <- c(res1, res2)
如果你想让它可重现(即每次你 运行 脚本时采样 returns 相同的数字),你需要 set.seed
.