在R中划分密度分布

时间:2013-06-28 21:41:31

标签: r histogram kernel-density

我想在R中划分两个密度分布(或两个直方图)。我甚至会“使用运算符从另一个中减去一个” - 但我没有看到明显的方法来做到这一点,除了取样并减去/除以很长的路。

是否有一个函数/ R包允许人们在没有采样的情况下操纵R密度?

我是R的新手,是CERN根移植手术,如果这是相关的。

1 个答案:

答案 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")
相关问题