Re: [R] Using objectname in function

2010-08-18 Thread Gabor Grothendieck
On Wed, Aug 18, 2010 at 7:10 AM, JesperHybel jesperhy...@hotmail.com wrote:

 Is there anyway I can convert a vectors objectname to a string to be used in
 fx:

 Monkey-c(0,0,0,1,1,1)
 Wax-c(1,0,1,0,1,0)

 f-function(x,y){ table(x,y) }

 f(Monkey,Wax)

 so that the printout is not

   y
 x   0 1
  0 1 2
  1 2 1

 but

          Wax
 Monkey 0 1
        0 1 2
        1 2 1


Try this:

  f - function(...) eval.parent(substitute(table(...)))

__
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.


Re: [R] Using objectname in function

2010-08-18 Thread Barry Rowlingson
On Wed, Aug 18, 2010 at 12:10 PM, JesperHybel jesperhy...@hotmail.com wrote:
 f-function(x,y){ table(x,y

If you look at the code for 'plot', you'll see it does that with some
deparse/substitute magic. Then use the dnn option to table to set the
names:

f-function(x,y){
table(x,y,dnn=c(deparse(substitute(x)),deparse(substitute(y}

Barry

__
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.


Re: [R] Using objectname in function

2010-08-18 Thread Duncan Murdoch

On 18/08/2010 7:10 AM, JesperHybel wrote:

Is there anyway I can convert a vectors objectname to a string to be used in
fx:

Monkey-c(0,0,0,1,1,1)
Wax-c(1,0,1,0,1,0)

f-function(x,y){ table(x,y) }

f(Monkey,Wax)

so that the printout is not

   y
x   0 1
  0 1 2
  1 2 1

but

  Wax
Monkey 0 1
0 1 2
1 2 1




deparse(substitute(x)) will give the expression that was passed as 
argument x in the function.  Getting table() to make use of these is a 
little tricky.  Probably the easiest way is to construct a call using 
do.call():


f - function(x, y) {
  xname - deparse(substitute(x))
  yname - deparse(substitute(y))
  args - list(x,y)
  names(args) - c(xname, yname)
  do.call(table, args)
}

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.


Re: [R] Using objectname in function

2010-08-18 Thread Gabor Grothendieck
On Wed, Aug 18, 2010 at 7:23 AM, Gabor Grothendieck
ggrothendi...@gmail.com wrote:
 On Wed, Aug 18, 2010 at 7:10 AM, JesperHybel jesperhy...@hotmail.com wrote:

 Is there anyway I can convert a vectors objectname to a string to be used in
 fx:

 Monkey-c(0,0,0,1,1,1)
 Wax-c(1,0,1,0,1,0)

 f-function(x,y){ table(x,y) }

 f(Monkey,Wax)

 so that the printout is not

   y
 x   0 1
  0 1 2
  1 2 1

 but

          Wax
 Monkey 0 1
        0 1 2
        1 2 1


 Try this:

  f - function(...) eval.parent(substitute(table(...)))


Actually this would be good enough:

   f - function(...) table(...)

or even

   f - table

__
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.