[R] Looping through data sets to change column from character to numeric

Greg Snow Greg.Snow at imail.org
Sun Jul 31 04:22:00 CEST 2011


Others have shown how to do this, but a better approach may be to load your .Rdata file into a new environment rather than the global environment, then you can work with the environment (and all the objects in it) using lapply, or loops with [[]] instead of fighting with get and assign.

Something like:

> mydfs <- new.env()
> load( '.Rdata', env=mydfs
> mydfs <- lapply( mydfs, function(x) { x$ResultValue <- as.numeric(x$ResultValue); x} )

Or

> mydfs <- lapply( mydfs, function(x) within(x, ResultValue <- as.numeric(ResultValue) ) )

Or

> for( frame in ls(env=mydfs) ) {
+  mydfs[[frame]]$ResultValue <- as.numeric( mydfs[[frame]]$ResultValue )
+ }



-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Sarah Henderson
Sent: Thursday, July 28, 2011 5:09 PM
To: R List
Subject: [R] Looping through data sets to change column from character to numeric

Greetings to all --

I am having a silly problem that I just can't solve.  Someone has given me
an .RData file will hundreds of data frames.  Each data frame has a column
named ResultValue, currently character when it should be numeric.  I want to
loop through all of the data frames to change the variable to numeric, but I
cannot figure out how to do it. My best guess was along the lines of:

frames = ls()
for (frame in frames){
     assign(frame, get(frame), .GlobalEnv)
     frame[,"ResultValue"] = as.numeric(frame[,"ResultValue"])
     }

It doesn't work.  After the assign() the frame object remains the character
name of the dataframe I am trying to change.  If I do the following, the
TEST object comes out just fine.

frames = ls()
for (frame in frames){
     assign("TEST", get(frame), .GlobalEnv)
     TEST[,"ResultValue"] = as.numeric(TEST[,"ResultValue"])
     }

Seems like it should be simple, but I am misunderstanding something and not
following the logic.  Any insight?

Thanks,

Sarah

	[[alternative HTML version deleted]]

______________________________________________
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.



More information about the R-help mailing list