cool, thanks! Still, I wonder if there is a way to pass all args as is from a function downward (like in a lisp macro); something like
sorted.table <- function (...) { tab <- table(...); ... } > * William Dunlap <jqha...@gvopb.pbz> [2012-09-19 16:26:08 +0000]: > > Here is one way: > >> sorted.table <- function(x, name = if (is.list(x))names(x) else >> deparse(substitute(x))[1]) { > + tab <- table(x) > + names(dimnames(tab)) <- name > + tab <- tab[tab > 0] > + sort(tab, decreasing=TRUE) > + } >> digits <- factor(trunc(100*log2(1:20)%%.1), levels=0:9) >> sorted.table(digits) > digits > 0 8 2 6 4 5 > 9 4 3 2 1 1 >> sorted.table(data.frame(DigitsColumn=digits)) > DigitsColumn > 0 8 2 6 4 5 > 9 4 3 2 1 1 >> sorted.table(digits, name="My Digits") > My Digits > 0 8 2 6 4 5 > 9 4 3 2 1 1 > > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com > > >> -----Original Message----- >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On >> Behalf >> Of Sam Steingold >> Sent: Wednesday, September 19, 2012 9:13 AM >> To: r-help@r-project.org >> Subject: Re: [R] drop zero slots from table? >> >> Function >> --8<---------------cut here---------------start------------->8--- >> sorted.table <- function (vec) { >> tab <- table(vec) >> tab <- tab[tab > 0] >> sort(tab, decreasing=TRUE) >> } >> --8<---------------cut here---------------end--------------->8--- >> does what I want but it prints "vec" instead of the name of its >> argument: >> --8<---------------cut here---------------start------------->8--- >> > sorted.table(foo$bar) >> vec >> A B >> 10 3 >> --8<---------------cut here---------------end--------------->8--- >> how do I pass all arguments of sorted.table() on to table() as is? >> thanks! >> >> > * Sam Steingold <f...@tah.bet> [2012-09-19 11:51:08 -0400]: >> > >> > I find myself doing >> > tab <- table(...) >> > tab <- tab[tab > 0] >> > tab <- sort(tab,decreasing=TRUE) >> > all the time. >> > I am wondering if the "drop 0" (and maybe even sort?) can be effected by >> > some magic argument to table() which I fail to discover in the docs? >> > Obviously, I could use droplevels() to avoid 0 counts in the first >> > place, but I do not want to drop the levels in the data. >> >> -- >> Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X >> 11.0.11103000 >> http://www.childpsy.net/ http://memri.org http://thereligionofpeace.com >> http://www.PetitionOnline.com/tap12009/ http://dhimmi.com >> Beauty is only a light switch away. >> >> ______________________________________________ >> 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. > -- Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000 http://www.childpsy.net/ http://thereligionofpeace.com http://mideasttruth.com http://palestinefacts.org http://openvotingconsortium.org http://truepeace.org If you will not bring your husband coffee in bed, his day may start with a beer. ______________________________________________ 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.