替换概率向量中的NA

时间:2016-07-24 01:16:43

标签: r

什么是摆脱R中概率向量中 NA 值的好方法?我正在做一些抽样,有时候概率向量中有 NA 个值,因为群体中没有特定值的出现。下面的代码说明了这个问题:

population <- c("A", "B", "B")
probs <- prop.table(table(population))
action <- c("A", "C", "D")
test <- sample(action,1,prob=c(probs[1], probs[2], probs[3]))

1 个答案:

答案 0 :(得分:0)

在我看来,您希望使用action中相应元素的概率来指定population的每个元素的概率。您可以通过对probs向量进行索引的字符来执行此操作,特别是使用probs索引population

set.seed(1L);
population <- c('A','B','B');
probs <- prop.table(table(population));
action <- c('A','C','D');
test <- sample(action,1L,prob=probs[population]);
test;
## [1] "C"

您的代码失败,因为probs只有两个元素; probs[3]返回NA。另请注意,probs[1:3]c(probs[1],probs[2],probs[3])的更简洁因子。