On 15/08/07, Ted Harding <Ted.Harding@manchester.ac.uk> wrote:
>
> On 15-Aug-07 08:30:08, Nick Chorley wrote:
> > Hi,
> >
> > I have a large amount of data that I would like to create a
> > histogram of and plot and do things with in R. It is pretty
> > much impossible to read the data into R, so I have written a
> > program to bin the data and now have a list of counts in each
> > bin. Is it possible to somehow import this into R and use
> > hist(), so I can, for instance, plot the probability density?
> > I have looked at the help page for hist(), but couldn't find
> > anything related to this there.
> >
> > Regards,
> >
> > Nicky Chorley
>
> Presumably you now have (or can readily generate) files on your
> system whose contents are (or are equivalent to) something like:
>
> brkpts.dat
> 0.0
> 0.5
> 1.0
> ....
> 9.5
> 10.0
>
> counts.dat
> 10
> 7
> 38
> ....
> 7
> 0
>
> where there is one more line in brkpts.dat than in counts.dat
>
> Now simply read both files into R, creating variables 'brkpts',
> 'counts'
>
> Now create a histogram template (any silly old data will do):
>
> H1 <- hist(c(1,2))
>
> Next, attach your variables to it:
>
> H1$breaks <- brkpts
> H1$counts <- counts
>
> and you have your histogram in R. Also, you can use the data
> in the variables 'brkpts', 'counts' to feed into any other
> procedure which can acept data in this form.


This is precisely what I wanted to do, except I didn't realise that you
could assign to the variables in the histogram object like this.  Normally
when constructing the histogram, I'd use hist(x, prob=T) to plot the
probability density against x, but obviously if you're just assigning values
to the variables in the object, you can't do that. I tried putting "prob=T"
in the call to hist when making the dummy object, but that didn't help.

Example (simulating the above in R):
>
>   brkpts<-0.5*(0:20)
>   counts<-rpois(20,7.5)
>   H1<-hist(c(1,2))
>   H1$breaks <- brkpts
>   H1$counts <- counts
>   plot(H1)
>
> Or, if you want a more "realistic-looking" one, follow on with:
>
> midpts<-(brkpts[1:20]+brkpts[2:21])/2
> counts<-rpois(20,100*dnorm(midpts,mean=5,sd=3))
> H1$breaks <- brkpts
> H1$counts <- counts
> plot(H1)
>
>
> In other words, you've already done R's work for it with your
> program which bins the data. All you need to do in R is to get
> these results into the right place in R.


Yes!  Thanks very much!

NC

Hoping this helps,
> Ted.
>
> --------------------------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding@manchester.ac.uk>
> Fax-to-email: +44 (0)870 094 0861
> Date: 15-Aug-07                                       Time: 10:38:05
> ------------------------------ XFMail ------------------------------
>

	[[alternative HTML version deleted]]

