[R] could i change the ouput style on summary?

Jim Lemon jim at bitwrit.com.au
Thu Jul 6 03:03:46 CEST 2006


Hi Zhi Jie,

I had a look at the summary function, and a minor extension seems to do
what you want.

is.numeric.factor<-function(x) {
   if(is.factor(x)) {
    if(any(is.na(as.numeric(levels(x))))) return(FALSE)
    return(TRUE)
   }
   return(FALSE)
}

summary.table<-function(x) {
  oldwarn<-options("warn")
  options(warn=-1)
  varnames<-names(x)
  num.index<-which(sapply(x,is.numeric))
  fac.index<-which(sapply(x,is.numeric.factor))
  cat("Summary table for",deparse(substitute(x)),"\n")
  cat("             Min.  1st Qu.   Median     Mean  3rd Qu.
Max.\n")
  if(length(num.index)) {
   for(i in 1:length(num.index))

cat(formatC(c(varnames[num.index[i]],as.numeric(summary(x[[num.index[i]]]))),width=8),"\n")
  }
  if(length(fac.index)) {
   for(i in 1:length(fac.index))

cat(formatC(c(varnames[fac.index[i]],as.numeric(summary(x[[fac.index[i]]]))),width=8),"\n")
  }
  options(warn=oldwarn$warn)
}

However, I got interested in the problem in an unoccupied moment and 
wrote a set of functions named "describe" that may be an even more 
suitable solution to your problem. Let me know if you would like to try 
them.

Jim



More information about the R-help mailing list