我想在R中划分两个密度分布(或两个直方图)。我甚至会“使用运算符从另一个中减去一个” - 但我没有看到明显的方法来做到这一点,除了取样并减去/除以很长的路。
是否有一个函数/ R包允许人们在没有采样的情况下操纵R密度?
我是R的新手,是CERN根移植手术,如果这是相关的。
答案 0 :(得分:2)
对两个(或更多)密度进行操作的技巧是将它们的范围设置为相同。那么“x”向量将是相同的,并且“y”向量将通过通常的算术运算表现得非常好。
> xx <- rnorm(100)
> yy <- rnorm(100)
> yd <- density(yy, from=-3, to=3)
> xd <- density(xx, from=-3, to=3)
> plot(xd, col="red")
> str(xd)
List of 7
$ x : num [1:512] -3 -2.99 -2.98 -2.96 -2.95 ...
$ y : num [1:512] 0.0122 0.0126 0.0131 0.0136 0.0141 ...
$ bw : num 0.377
$ n : int 100
$ call : language density.default(x = xx, from = -3, to = 3)
$ data.name: chr "xx"
$ has.na : logi FALSE
- attr(*, "class")= chr "density"
> lines(yd$x, yd$y, col="red")
# difference of the densities
> lines(yd$x, xd$y-yd$y, col="green")