所以我有一个关于更容易做某事的问题。
我希望使用特殊排序替换某些数据,其中数据被特定值替换(而不是原始样本数据中的任何值)。
例如,如果我想从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
我不确定这种替代品是否有特殊的说法,基本上我想知道是否有更容易/更有效的方式(或者任何人都知道的内置功能?
由于
答案 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)