Hi Duncan, Yes, A and B are columns in D. Having said that I and trying to avoid
tab(D$A,D$B) and I would prefer: tab(A,B) Unfortunately the syntax you suggest is giving me the same error: Error in eval(expr, envir, enclos) : object "A" not found I have tried to add some deparse() but I have got the error over again. The last version I have tried: function(x,y){ z <- substitute(time ~ x + y, list(x = deparse(substitute(x)), y = deparse(substitute(y)))) xtabs(z, data=D) gives me another error: Error in terms.formula(formula, data = data) : formula models not valid in ExtractVars Any idea on how I should modify the function to make it work? Thanks, Luca Il giorno 20/dic/2010, alle ore 19.28, Duncan Murdoch ha scritto: > On 20/12/2010 1:13 PM, Luca Meyer wrote: >> I am trying to pass a couple of variable names to a xtabs formula: >> >> > tab<- function(x,y){ >> xtabs(time~x+y, data=D) >> } >> >> But when I run: >> >> > tab(A,B) >> >> I get: >> >> Error in eval(expr, envir, enclos) : object "A" not found >> >> I am quite sure that there is some easy way out, but I have tried with >> different combinations of deparse(), substitute(), eval(), etc without >> success, can someone help? > > I assume that A and B are columns in D? If so, you could use > > tab(D$A, D$B) > > to get what you want. If you really want tab(A,B) to work, you'll need to do > messy work with substitute, e.g. in the tab function, something like > > fla <- substitute(time ~ x + y, list(x = substitute(x), y = substitute(y)) > xtabs(fla, data=D) > > Duncan Murdoch ______________________________________________ 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.