什么是摆脱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]))
答案 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])
的更简洁因子。