[R] importing data from BUGS format to R?

From: Jeffrey Moore <jemoore_at_duke.edu>
Date: Fri 24 Feb 2006 - 14:41:45 EST

For those who use WinBUGS (or for those who are just familar with this format), I have a text file that looks like this (which is how R would export data if you used the "structure" function):  

y= structure(.Data= c(-6.93310E+01, 4.32870E+01, -6.96600E+01, 4.35730E+01,
-6.90150E+01, 4.35870E+01, -5.81060E+01, 4.52890E+01, -6.65590E+01,

4.34600E+01, -6.61850E+01, 4.35000E+01, -6.54130E+01, 4.31940E+01,

-6.42790E+01, 4.34780E+01, -6.35520E+01, 4.38070E+01, -6.32980E+01,
4.39520E+01, -6.25690E+01, 4.41760E+01, -6.20810E+01, 4.40800E+01,
-6.14280E+01, 4.46210E+01, -6.10530E+01, 4.48050E+01, -6.00300E+01,
4.50480E+01, -5.88110E+01, 4.50280E+01, -5.83660E+01, 4.50400E+01,
-5.83140E+01, 4.48780E+01, -5.87330E+01, 4.50340E+01, -5.87430E+01,
4.51630E+01, -5.88170E+01, 4.54030E+01, -5.89380E+01, 4.53260E+01,
-5.89110E+01, 4.55260E+01, NA, NA, -5.91250E+01, 4.56070E+01,
-5.90140E+01, 4.59690E+01, -5.89830E+01, 4.64640E+01, -5.89240E+01,
4.66300E+01, -5.93770E+01, 4.66810E+01, -5.90010E+01, 4.65640E+01,
-5.91230E+01, 4.67780E+01, -5.92350E+01, 4.70000E+01, -5.92310E+01,
4.68350E+01, NA, NA, -5.88530E+01, 4.68560E+01, NA, NA, NA, NA, NA, NA, -5.83550E+01, 4.65300E+01, -5.83270E+01, 4.64970E+01, -5.86210E+01, 4.65320E+01, NA, NA, -5.82720E+01, 4.65060E+01, -5.81480E+01, 4.64490E+01, -5.83350E+01, 4.63650E+01, NA, NA, -5.84800E+01, 4.63340E+01, -5.83980E+01, 4.63040E+01, -5.83390E+01, 4.62030E+01, -5.82170E+01, 4.62620E+01, NA, NA, -5.80420E+01, 4.61940E+01, -5.80360E+01, 4.57280E+01, -5.80590E+01, 4.55420E+01,
-5.83010E+01, 4.54730E+01, -5.83710E+01, 4.55010E+01, -5.86540E+01,
4.52870E+01, -5.87020E+01, 4.51740E+01, -5.87400E+01, 4.52620E+01,
-5.88330E+01, 4.53190E+01, -5.89740E+01, 4.53410E+01, NA, NA,
-5.85240E+01, 4.54970E+01, -5.81710E+01, 4.56200E+01, -5.79070E+01,
4.58370E+01, NA, NA, -5.73610E+01, 4.62660E+01, -5.71820E+01, 4.60770E+01, -5.70540E+01, 4.59920E+01, NA, NA, NA, NA,
-5.58460E+01, 4.51830E+01, -5.53690E+01, 4.52890E+01, -5.49260E+01,
4.53340E+01, -5.40070E+01, 4.53670E+01, -5.35510E+01, 4.54510E+01, NA,
NA, -5.15130E+01, 4.63060E+01, -5.15000E+01, 4.63280E+01, -5.08410E+01,
4.67780E+01, -4.99400E+01, 4.69670E+01, -4.88440E+01, 4.72810E+01,

-4.87250E+01, 4.76880E+01, -4.70460E+01, 4.87420E+01, -5.17870E+01,
4.83990E+01, -4.68830E+01, 4.97030E+01, -4.73700E+01, 5.03350E+01,
-4.75990E+01, 5.10690E+01, -5.15050E+01, 5.05110E+01, -4.80640E+01,
5.19200E+01, -4.83890E+01, 5.27580E+01, NA, NA, -4.85200E+01, 5.41250E+01, -4.87630E+01, 5.53650E+01, NA, NA, -4.84790E+01, 5.70560E+01, -4.82690E+01, 5.77990E+01, -4.77870E+01, 5.87570E+01,
-4.74070E+01, 5.96700E+01, -4.76990E+01, 6.02020E+01, -4.82110E+01,
6.03410E+01, -4.90240E+01, 6.05510E+01, -4.89050E+01, 6.06780E+01,
-4.80660E+01, 6.05380E+01, -4.61030E+01, 6.01290E+01, NA, NA,
-4.59880E+01, 6.02070E+01, -4.55240E+01, 5.99680E+01, -4.59540E+01,
5.97650E+01, -4.58830E+01, 5.98200E+01, -4.64730E+01, 6.00690E+01,
-4.64660E+01, 6.00730E+01, -4.59630E+01, 5.99330E+01, -4.63940E+01,
6.01380E+01, -4.64370E+01, 6.02270E+01, -4.67750E+01, 6.04410E+01,

-4.68020E+01, 6.04700E+01, -4.57440E+01, 5.97720E+01, -4.48480E+01,
5.96590E+01, -4.50540E+01, 5.97830E+01), .Dim=c(120, 2))  

I would like to read this into R as an 120x2 array (matrix or data frame). How would I do so?  

I know I can just copy/paste all the values bound by c( ), and then just do something like this:  

y <- matrix(c(pasted values), nrow=120, ncol = 2)  

But, I get errors messages when I try to copy/paste the whole dataset because I reach line limits in the R console, such that certain values get split, and then R doesn't know what to do with something like "0E+01, -". So, I can instead try to copy/paste in a piecemeal fashion (which I've done, and it works fine), but I'm sure there's a better way.  


Jeffrey Moore, Ph.D.
Postdoctoral Research Scientist
Duke Center for Marine Conservation
Duke University Marine Laboratory
135 Duke Marine Lab Road
Beaufort, NC 28516
Phone: (252) 504-7653
Fax: (252) 504-7689
Email: jemoore@duke.edu

        [[alternative HTML version deleted]]

R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Feb 24 14:53:04 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:44 EST