采样"独特的价值"在R中更换

时间:2018-04-24 16:53:04

标签: r sample

所以我有一个关于更容易做某事的问题。

我希望使用特殊排序替换某些数据,其中数据被特定值替换(而不是原始样本数据中的任何值)。

例如,如果我想从1到12之间的数字中取20个样本,除了我希望它给出另一个数字,0,比如说,如果其中一个数字已被采样。

我起草了这个例子来展示我的意思,使用第二个逻辑值(1和0)样本然后进行简单的替换:

set.seed(1)

samples <- 20

vector_to_sample <- 1:12 

sampled_vector <- sample(vector_to_sample, size = length(vector_to_sample), replace = FALSE)

logical_vector <- c(rep.int(1, length(vector_to_sample)), rep.int(0, samples-length(vector_to_sample)))

sampled_logical <- sample(logical_vector, size = samples, replace = FALSE)

logical_replacement <- rep.int(0, samples)

replace(sampled_logical, sampled_logical == 1, sampled_vector)

# this should output: 0  4  0  5  6  0  9  2  0  7  10  12  0  0  3  0  1  11  0  8

我不确定这种替代品是否有特殊的说法,基本上我想知道是否有更容易/更有效的方式(或者任何人都知道的内置功能?

由于

1 个答案:

答案 0 :(得分:0)

 set.seed(1)


 samples <- 20

 vector_to_sample <- 1:12 

 sampled_vector <- sample(vector_to_sample, size = samples, replace = T)

 replace(sampled_vector, duplicated(sampled_vector), 0)