Thanks for your help. By adding { eval(substitute(var)) }, it works for me. Patrick advise me not attaching a dataset in a function. I will try to avoid this.
Best, Sean On Tue, Mar 4, 2008 at 11:15 AM, Erik Iverson <[EMAIL PROTECTED]> wrote: > It isn't clear to me what output you would like to have by your > description. > > However, there certainly is a clearer way of getting there than your > functions. If you better define what output you'd like to have (i.e., > what your table should look like), I may be able to offer some > suggestions. > > You may want to look at ?prop.table to see if it helps you though. > > Best, > Erik Iverson > > rmail ye wrote: > > Hi there, > > > > I am confused about fucntion call. After defining a function, I called > it > > within another function. > > > > dt<-cars; #a copy of R internal dataset "cars" created; > > dt$cat1<-ifelse(dt$speed<20,0,1); > > dt$ind<-ifelse(dt$speed<15,1,2); #group variable; > > > > freqtot <- function(data,var){ > > attach(data,warn.conflicts=FALSE) > > x1 <- data.frame(table(var)) > > names(x1) <- c("Group","cnt") > > x1$pct<-round(x1$cnt/nrow(data)*100,1) > > return(x1) > > } > > > > freqgrp <- function(dt,var,grp,grpcnt){ > > xx<-freqtot(dt,var) > > for(i in 1:grpcnt) { > > assign(paste("x",i,sep=""),subset(dt,grp==i)) > > df<-eval(parse(text=paste("x",i,sep=""))) > > yy <- freqtot(df,cat1); > > > > > names(yy)<-c("Group",paste("grp_",i,"_cnt",sep=""),paste("grp_",i,"_pct",sep="")) > > xx<-merge(xx,yy,by.x="Group",all=TRUE) > > } > > print(xx) > > } > > > > The output is > >> xyz <- freqgrp(dt,cat1,ind,2) > > Group cnt pct grp_1_cnt grp_1_pct grp_2_cnt grp_2_pct > > 1 0 38 76 23 100 15 55.6 > > 2 1 12 24 NA NA 12 44.4 > > But if I substitue the variable "cat1" in line {yy <- freqtot(df,cat1)}, > it > > doesn't output the correct results. > > > > The motivation to write the 2 functions is putting the count and > percentage > > for overall & each individual group together, and write the data frame > into > > a .csv file. > > > > Thanks, > > Sean > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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<http://www.r-project.org/posting-guide.html> > > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ 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.