Ed Heaton
2011-Aug-12 19:12 UTC
[R] Getting data from an *.RData file into a data.frame object.
Hi, all. I'm new to R. I've been a SAS programmer for 20 years. I seem to be having trouble with the most basic task - bringing a table in an *.RData file into a data.frame object. Here's how I created the *.RData file. library(RODBC) db <- odbcConnect("*******") df <- sqlQuery( db , "select * from schema.table where year(someDate)=2006" ) save( df , file="C:/Documents and Settings/userName/My Documents/table2006.RData" ) dim(df) remove(df) odbcClose(db) remove(db) detach("package:RODBC") Next, I moved that data file (table2006.RData) to another workstation - not at the client site. Now, I need to get that data file into a data.frame object. I know this should be simple, but I can't seem to find out how to do that. I tried the following. First, after opening R without doing anything, RGui used 35,008 KB of memory. I submitted the following.> debt2006 <- load("T:/R.Data/table2006.RData")Memory used by RGui jumped to 191,512 KB. So, it looks like the data loaded. However, debt2005 is of type character instead of data.frame.> ls()[1] "debt2005"> class(debt2005)[1] "character">Help, please. Ed Ed Heaton Project Manager, Sr. SAS Developer Data and Analytic Solutions, Inc. 10318 Yearling Drive Rockville, MD 20850 Office: 301-520-7414 eheaton at dasconsultants.com www.dasconsultants.com <http://www.dasconsultants.com/> CMMI ML-2, SBA 8(a) & SDB, WBE (WBENC), MBE (VA & MD) ed at heaton.name (Re: http://www.r-project.org/posting-guide.html)
Duncan Murdoch
2011-Aug-12 19:23 UTC
[R] Getting data from an *.RData file into a data.frame object.
On 12/08/2011 3:12 PM, Ed Heaton wrote:> Hi, all. > > I'm new to R. I've been a SAS programmer for 20 years. > > I seem to be having trouble with the most basic task - bringing a table in > an *.RData file into a data.frame object. > > Here's how I created the *.RData file. > > library(RODBC) > db<- odbcConnect("*******") > df<- sqlQuery( > db > , "select * from schema.table where year(someDate)=2006" > ) > save( > df > , file="C:/Documents and Settings/userName/My Documents/table2006.RData" > ) > dim(df) > remove(df) > odbcClose(db) > remove(db) > detach("package:RODBC") > > Next, I moved that data file (table2006.RData) to another workstation - not > at the client site. > > Now, I need to get that data file into a data.frame object. I know this > should be simple, but I can't seem to find out how to do that. I tried the > following. First, after opening R without doing anything, RGui used 35,008 > KB of memory. I submitted the following. > > > debt2006<- load("T:/R.Data/table2006.RData") > > Memory used by RGui jumped to 191,512 KB. So, it looks like the data > loaded. However, debt2005 is of type character instead of data.frame. > > > ls() > [1] "debt2005" > > class(debt2005) > [1] "character" > > > > Help, please.save() and load() work with multiple objects, and the objects keep their names. So your object would be recreated as "df" after the load. If you just want to save the data from one object without its name, use saveRDS() and readRDS(). Duncan Murdoch
peter dalgaard
2011-Aug-12 19:38 UTC
[R] Getting data from an *.RData file into a data.frame object.
On Aug 12, 2011, at 21:12 , Ed Heaton wrote:> Hi, all. > > I'm new to R. I've been a SAS programmer for 20 years. > > I seem to be having trouble with the most basic task - bringing a table in > an *.RData file into a data.frame object. > > Here's how I created the *.RData file. > > library(RODBC) > db <- odbcConnect("*******") > df <- sqlQuery( > db > , "select * from schema.table where year(someDate)=2006" > ) > save( > df > , file="C:/Documents and Settings/userName/My Documents/table2006.RData" > ) > dim(df) > remove(df) > odbcClose(db) > remove(db) > detach("package:RODBC") > > Next, I moved that data file (table2006.RData) to another workstation - not > at the client site. > > Now, I need to get that data file into a data.frame object. I know this > should be simple, but I can't seem to find out how to do that. I tried the > following. First, after opening R without doing anything, RGui used 35,008 > KB of memory. I submitted the following. > >> debt2006 <- load("T:/R.Data/table2006.RData") > > Memory used by RGui jumped to 191,512 KB. So, it looks like the data > loaded. However, debt2005 is of type character instead of data.frame. > >> ls() > [1] "debt2005" >> class(debt2005) > [1] "character" >> > > Help, please. >The load/save mechanism handles multiple objects. You can't really assign the result of load(), its return value is just a vector of object names ("df", right?). So look in your workspace for an object called "df". Then assign it to debt2005. AFAIK, this won't duplicate quite as much as it sounds it might. For a single-step variation, try something like debt2005 <- local({load(myfile); df})> Ed > > Ed Heaton > Project Manager, Sr. SAS Developer > Data and Analytic Solutions, Inc. > 10318 Yearling Drive > Rockville, MD 20850 > Office: 301-520-7414 > eheaton at dasconsultants.com > www.dasconsultants.com <http://www.dasconsultants.com/> > CMMI ML-2, SBA 8(a) & SDB, WBE (WBENC), MBE (VA & MD) > > ed at heaton.name > > (Re: http://www.r-project.org/posting-guide.html) > > ______________________________________________ > R-help at 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.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com "D?den skal tape!" --- Nordahl Grieg