Re: Binning data points
- To: mathgroup at smc.vnet.net
- Subject: [mg125112] Re: Binning data points
- From: Ray Koopman <koopman at sfu.ca>
- Date: Wed, 22 Feb 2012 05:30:07 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jhvub4$83n$1@smc.vnet.net>
On Feb 21, 3:14 am, Niles <niels.martin... at gmail.com> wrote: > Hi > > Say I have a data set (x_i, y_i) such as of the form > > { > {4.4077, 8.41282*10^-7}, > {9.39964, 3.3636*10^-6}, > {14.3781, 7.56237*10^-6}, > {19.3462, 0.00001343}, > {24.3073, 0.0000209557}, > ... > > } > > The first coordinate is time, the second a weight. The sum of the > weights equal 1, so I am dealing with a probability density function. > I want to bin all the data points such that data points with their x- > coordinates within some range delta_x are binned together, and the > total y-coordinate of that bin should be the sum of all the y's of the > data points in the respective bin. So basically something like a > histogram. > > How can I do this? > > Best regards. > Niles. data = {{4.4077, 8.41282/10^7}, {9.39964, 3.3636/10^6}, {14.3781, 7.56237/10^6}, {19.3462, 0.00001343}, {24.3073, 0.0000209557}}; bb = {0,10,20,30,40}; (* bin boundaries *) (* This gives the count and total probability for each bin. *) Flatten[Map[If[# == {}, {0,0}, {Length@#,Tr@#[[All,2]]} ]&, BinLists[data, {bb}, {{-Infinity,Infinity}}], {2}], 1] {{2, 4.20488*10^-6}, {2, 0.0000209924}, {1, 0.0000209557}, {0, 0}}