Hi everybody, Thank you so much for all the explanations. Now it is much more clear to me. And sorry for the delay in answer but i move office and i was not on line for some time (not that you are really interested in that, though ;-)).
I should have sent a dummy example, my real data is a little bit too large for that. Next time probably i will do better. Thanks again, Monica > Date: Mon, 5 Sep 2011 14:56:10 +0530 > Subject: Re: [R] Getting the values out of histogram (lattice) > From: deepayan.sar...@gmail.com > To: rolf.tur...@xtra.co.nz; pisican...@hotmail.com > CC: mac...@nsw.chariot.net.au; r-help@r-project.org > > On Thu, Sep 1, 2011 at 10:29 AM, Rolf Turner <rolf.tur...@xtra.co.nz> wrote: > > > > 'Scuse me, but I don't see anything in your example relating to what the OP > > asked for. She wanted to get at the ``actual data defining the histogram'', > > which > > I interpret as meaning the bar heights (the percentages, density values, or > > counts, > > depending on "type"). These do not appeared to be stored in the object > > returned > > by histogram(). > > A couple of additional comments: > > 1. The `official' way to get panel arguments is trellis.panelArgs(); e.g., > > > p <- histogram(~rnorm(100) | gl(2, 50), type = "density") > > str(trellis.panelArgs(p, 2)) > List of 5 > $ x : num [1:50] 0.277 1.144 1.13 -0.912 -0.892 ... > $ breaks : num [1:9] -2.561 -1.979 -1.398 -0.816 -0.234 ... > $ type : chr "density" > $ equal.widths: logi TRUE > $ nint : num 8 > > 2. hist.constructor() is needed for technical reasons, and can be > considered to be the same as hist() for this purpose. So the > computations performed by panel.histogram() can be reduced to > > > histogram.computations <- > function(x, breaks, equal.widths = TRUE, > type = "density", nint, ...) > { > if (is.null(breaks)) > { > breaks <- > if (is.factor(x)) seq_len(1 + nlevels(x)) - 0.5 > else if (equal.widths) do.breaks(range(x, finite = TRUE), nint) > else quantile(x, 0:nint/nint, na.rm = TRUE) > } > hist(x, breaks = breaks, plot = FALSE) > } > > which may be used as follows to get the ``actual data defining the > histogram'': > > > a <- trellis.panelArgs(p, 2) > > h <- do.call(histogram.computations, a) > > str(h) > List of 7 > $ breaks : num [1:9] -2.561 -1.979 -1.398 -0.816 -0.234 ... > $ counts : int [1:8] 1 4 6 14 7 8 6 4 > $ intensities: num [1:8] 0.0344 0.1375 0.2062 0.4812 0.2406 ... > $ density : num [1:8] 0.0344 0.1375 0.2062 0.4812 0.2406 ... > $ mids : num [1:8] -2.2704 -1.6885 -1.1065 -0.5246 0.0573 ... > $ xname : chr "x" > $ equidist : logi TRUE > - attr(*, "class")= chr "histogram" > > -Deepayan > > > > > cheers, > > > > Rolf Turner > > > > On 01/09/11 10:59, Duncan Mackay wrote: > >> > >> Hi Monica > >> > >> An example abbreviated from ?histogram > >> > >> x = histogram( ~ height, data = singer) > >> > >> names(x) > >> # to see what is there > >> str(x) > >> > >> # information > >> x$panel.args.common > >> $breaks > >> [1] 59.36 61.28 63.20 65.12 67.04 68.96 70.88 72.80 74.72 76.64 > >> > >> $type > >> [1] "percent" > >> > >> $equal.widths > >> [1] TRUE > >> > >> $nint > >> [1] 9 > >> > >> # x$panel.args: name as number > >> x[[35]] > >> [[1]] > >> [[1]]$x > >> [1] 64 62 66 65 60 61 65 66 65 63 67 65 62 65 68 65 63 65 62 65 66 62 65 > >> 63 65 66 65 62 65 66 65 61 65 66 65 62 63 67 60 67 66 62 65 62 > >> [45] 61 62 66 60 65 65 61 64 68 64 63 62 64 62 64 65 60 65 70 63 67 66 65 > >> 62 68 67 67 63 67 66 63 72 62 61 66 64 60 61 66 66 66 62 70 65 > >> [89] 64 63 65 69 61 66 65 61 63 64 67 66 68 70 65 65 65 64 66 64 70 63 70 > >> 64 63 67 65 63 66 66 64 64 70 70 66 66 66 69 67 65 69 72 71 66 > >> [133] 76 74 71 66 68 67 70 65 72 70 68 64 73 66 68 67 64 68 73 69 71 69 76 > >> 71 69 71 66 69 71 71 71 69 70 69 68 70 68 69 72 70 72 69 73 71 > >> [177] 72 68 68 71 66 68 71 73 73 70 68 70 75 68 71 70 74 70 75 75 69 72 71 > >> 70 71 68 70 75 72 66 72 70 69 72 75 67 75 74 72 72 74 72 72 74 > >> [221] 70 66 68 75 68 70 72 67 70 70 69 72 71 74 75 > >> > >> etc to suite your requirements > >> > >> HTH > >> > >> Regards > >> > >> Duncan > >> > >> > >> Duncan Mackay > >> Department of Agronomy and Soil Science > >> University of New England > >> ARMIDALE NSW 2351 > >> Email: home mac...@northnet.com.au > >> > >> > >> > >> At 23:50 31/08/2011, you wrote: > >> > >> > >> > >>> Hi, > >>> > >>> > >>> > >>> I have a relatively big dataset and I want to construct > >>> some histograms using the histogram function in lattice. One thing I am > >>> interested in is to look at differences between density and percent. I > >>> know I can > >>> use the hist function but it seems that this function gives sometimes > >>> some > >>> wrong answers and the density is actually a percent since it is > >>> calculated as counts in the bin divided by the total no. of points. Let me > >>> explain. > >>> > >>> > >>> > >>> If I let the hist function to decide the breaks, or I use > >>> a small number, or one of the pre-determined methods to select breaks > >>> then > >>> everything seems to be in order. But if I decide to use for example > >>> 100 as > >>> a breaks (I have over 90000 data points so the number of breaks is not > >>> necessarily too large I would think) the density for the first bin is > >>> over 1, > >>> although for all the other breaks the density is actually a percent since > >>> it is > >>> the count for that bin divided by the total no. of points I have. So . > >>> Here it > >>> is something wrong or most probably I am doing something wrong. > >>> > >>> > >>> > >>> If I use the function histogram from lattice it is > >>> obvious that there is a difference between the percent param and the > >>> density > >>> param. I looked at the function code and I didn't understand it to be > >>> honest. > >>> It seems it calls inside the hist function, or a slightly modify variant > >>> of > >>> hist. Reading about the object trellis I saw I can access different info > >>> about > >>> the graph it generates but nothing about the actual data that goes into > >>> defining the histogram. How can I access the data from it? > >>> > >>> > >>> > >>> I am not sure if my problem is platform specific it should > >>> not be but I have Rx64 2.13.1 on windows machine, in case it counts. > >>> > >>> > >>> > >>> I appreciate your help, thanks, > >>> > >>> > >>> > >>> Monica > >>> > >>> > >>> ______________________________________________ > >>> R-help@r-project.org mailing list > >>> https://stat.ethz.ch/mailman/listinfo/r-help > >>> PLEASE do read the posting guide > >>> http://www.R-project.org/posting-guide.html > >>> and provide commented, minimal, self-contained, reproducible code. > >> > >> ______________________________________________ > >> R-help@r-project.org mailing list > >> https://stat.ethz.ch/mailman/listinfo/r-help > >> PLEASE do read the posting guide > >> http://www.R-project.org/posting-guide.html > >> and provide commented, minimal, self-contained, reproducible code. > >> > > > > ______________________________________________ > > R-help@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.