1lls <- 2# A function that expands the functionality of ls() 3function( pos = 1, pat = "", all=FALSE, print=TRUE ) 4{ 5# First a function that returns length/dim when you ask for it 6dimx <- function(dd) if (is.null(dim(dd))) length(dd) else dim(dd) 7# A vector of object names 8lll <- ls( pos=pos, pattern=pat, all.names=all ) 9# Are there any objects at all? 10if( length(lll) > 0 ) 11{ 12obj.mode <- 13obj.clas <- 14obj.dimx <- 15obj.size <- character(0) 16# Then find mode, class, name and dimension of them and return it 17for(i in 1:length(lll)) 18{ 19obj.mode[i] <- eval( parse(text = paste( "mode(`", lll[i], "`)",sep=""))) 20obj.clas[i] <- paste( eval( parse(text = paste( "class(`", lll[i], "`)",sep=""))), collapse=" " ) 21obj.dimx[i] <- paste( eval( parse(text = paste( "dimx(`", lll[i], "`)",sep=""))), collapse=" " ) 22obj.size[i] <- formatC( eval( parse(text = paste("unclass(object.size(`", lll[i], "`))",sep="")))/2^10, 23 format="f", digits=1, big.mark=",", width=14, flag=" " ) 24} 25dfr <- 26data.frame( name = lll, 27 mode = obj.mode, 28 class = obj.clas, 29 dim = obj.dimx, 30 sizeKbytes = obj.size, 31stringsAsFactors=FALSE ) 32names( dfr )[5] <- " size(Kb)" 33print( invisible( dfr ), right=FALSE ) 34} 35} 36 37