[EMAIL PROTECTED] wrote:
>> ...
I have a problem with freq from prettyR.

Please have a look at my syntax with a litte example:


library(prettyR)

#Version 1
test.df<-data.frame(q1=sample(1:4,8,TRUE), gender=sample(c("f","m"),8,TRUE))
test.df
freq(test.df) #No error message

#Version 2
test.df<-data.frame(gender=sample(c("f","m"),8,TRUE), q1=sample(1:4,8,TRUE))
test.df
freq(test.df)

Error message: "Error in vector("integer", length) : Vector size can“t be NA"

Can someone tell me, why an error message occurs in version two? I am
helpless...

Hi Udo,
I'm surprised that this bug survived as long as it did. When I looked at the code, I immediately thought, "That's not right" and it wasn't. Here is the repaired function that will be in version 1.3-1.

Jim

freq<-function(x,variable.labels=NULL,display.na=TRUE,levels=NULL) {

 if(missing(x))
  stop("A vector, dataframe or matrix must be supplied")
 xdim<-dim(x)
 # get the variable label here or it might be clobbered
 if(is.null(xdim)) {
  if(is.null(variable.labels))
   variable.labels<-deparse(substitute(x))
  x<-list(x)
  nfreq<-1
 }
 else {
  nfreq<-xdim[2]
  if(is.matrix(x))
  x<-as.data.frame(x)
  if(is.null(variable.labels))
   variable.labels<-names(x)
  if(is.null(variable.labels))
   variable.labels<-paste("V",1:xdim[2],sep="",collapse="")
 }
 freq.list<-rep(list(0),nfreq)
 for(i in 1:nfreq) {
  # see if there are any NAs and if they should be displayed
  if(display.na) nna<-sum(is.na(x[[i]]))
  else nna<-0
  # tabulate barfs with NAs
  xt<-na.omit(x[[i]])
  xlevels<-levels(xt)
  if(is.null(xlevels)) xlevels<-unique(xt)
  if(is.numeric(x[[i]])) xt<-factor(xt,levels=xlevels)
  freqs<-tabulate(xt)
  categories<-xlevels
  # if NAs present, tack on a label
  if(nna) categories<-c(categories,"NA")
  # tack on the NA count
  if(nna) freqs<-c(freqs,nna)
  names(freqs)<-categories
  freq.list[[i]]<-freqs
 }
 names(freq.list)<-variable.labels
 class(freq.list)<-"freq"
 return(freq.list)
}

______________________________________________
R-help@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.

Reply via email to