从序列中创建随机值,但随机重复观察的确切唯一数量
Create random values from sequence but with exact unique number of observations repeated randomly
我希望根据特定的数字序列创建一个包含 9776 个整数的随机向量,在本例中为 1 到 14610,但唯一的观测值数量必须等于 2444,并且每个观测值都必须随机重复,即 NOT 2444 个独特的观察结果,每个观察结果重复 4 次。
有什么建议吗?
谢谢
我们可以使用rep
得到关于9776的length
然后做sample
df <- data.frame(x= sample(rep(seq_len(2444), length.out=9776)))
length(unique(df$x))
#[1] 2444
如果我们需要将 length.out
替换为 each
也可以做到
df1 <- data.frame(x= sample(rep(seq_len(2444), each = 4)))
length(unique(df1$x))
#[1] 2444
或者如@lmo所述
df <- data.frame(x=sample(c(sample(2444), sample(2444, 9776-2444, replace=TRUE))))
或
df <- data.frame(x = sample(rep(sample(2444), length.out = 9776)))
length(unique(df$x))
#[1] 2444
head(df$x)
#[1] 858 1505 1631 105 79 268
tail(df$x)
#[1] 51 1545 100 1398 2261 682
更新
随着 OP 的更新问题
df1 <- data.frame(x=sample(rep(head(sample(14610), 2444), each = 4)))
length(unique(df1$x))
#[1] 2444
更新2
df1 <- data.frame(x = sample(rep(head(sample(14610), 2444),
sample(rep(1:4, length.out=2444)))))
length(unique(df1$x))
#[1] 2444
table(table(df1$x))
# 1 2 3 4
# 611 611 611 611
我希望根据特定的数字序列创建一个包含 9776 个整数的随机向量,在本例中为 1 到 14610,但唯一的观测值数量必须等于 2444,并且每个观测值都必须随机重复,即 NOT 2444 个独特的观察结果,每个观察结果重复 4 次。
有什么建议吗?
谢谢
我们可以使用rep
得到关于9776的length
然后做sample
df <- data.frame(x= sample(rep(seq_len(2444), length.out=9776)))
length(unique(df$x))
#[1] 2444
如果我们需要将 length.out
替换为 each
也可以做到
df1 <- data.frame(x= sample(rep(seq_len(2444), each = 4)))
length(unique(df1$x))
#[1] 2444
或者如@lmo所述
df <- data.frame(x=sample(c(sample(2444), sample(2444, 9776-2444, replace=TRUE))))
或
df <- data.frame(x = sample(rep(sample(2444), length.out = 9776)))
length(unique(df$x))
#[1] 2444
head(df$x)
#[1] 858 1505 1631 105 79 268
tail(df$x)
#[1] 51 1545 100 1398 2261 682
更新
随着 OP 的更新问题
df1 <- data.frame(x=sample(rep(head(sample(14610), 2444), each = 4)))
length(unique(df1$x))
#[1] 2444
更新2
df1 <- data.frame(x = sample(rep(head(sample(14610), 2444),
sample(rep(1:4, length.out=2444)))))
length(unique(df1$x))
#[1] 2444
table(table(df1$x))
# 1 2 3 4
# 611 611 611 611