[R] Displaying environment differences

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Tue Sep 28 11:56:07 CEST 2004


Sometimes after playing around in R for a while, I find myself thinking, 
"What have I done?". Which boils down to "What's the difference between 
the objects I currently have in my R session and those that were loaded 
from my .RData when I started R".

So I bashed this out in five minutes, just to test the principles.

differ <- function(file){
   load(file)
   inFile <- ls()
   inMemory <- ls(1)

   inBoth <- inFile[inFile %in% inMemory]

   for(thing in inBoth){
     if(identical(get(thing,1),get(thing))){
       cat(paste("Object :",thing," identical\n"))
     }else{
       cat(paste("Object :",thing," changed\n"))
     }
   }

   list(inFile,inMemory,inBoth)
}

  Eventually I'd make it display objects only in the .RData (these would 
be things deleted since load), only in environment 1 (things newly 
created since load), those in both but unchanged, and those in both yet 
changed.

  But then I thought, "Hey, its coffee time, lets see if anyone on 
R-help has done this already and when I get back refreshed it'll be done".

  I'm also not sure if 'get()'ting the things is the right thing to do.

Barry




More information about the R-help mailing list