我有一个值为分布未知的向量,我想用我所拥有的值的概率创建另一个向量。 例如
我有
v <- c(e1, e2, ... , ei)
我想创建
p <- c(P(e1), P(e2), ... , P(ei))
我怎样才能在R?中做到这一点?
答案 0 :(得分:1)
由于您想要创建一个与值向量长度相同的向量,您可以执行以下操作:
p <- sapply(v, function(x) length(which(x == v))/length(v))
示例使用字母作为值
set.seed(123)
v = sample(letters[1:4], 10, replace = TRUE)
p <- sapply(v, function(x) length(which(x == v))/length(v))
p
#> b d b d d a c d c b
#> 0.3 0.4 0.3 0.4 0.4 0.1 0.2 0.4 0.2 0.3