Re: [R] Passing a character argument onto a function

From: Dennis Murphy <djmuser_at_gmail.com>
Date: Sat, 12 Mar 2011 01:48:18 -0800

Hi:

One answer is eval(substitute(...)): [Note: it's a good idea NOT to use the same name on different objects - R is pretty good about distinguishing TEST the function from TEST the data frame, but you could be playing with fire if both objects have the same class but have different contents. This is why I renamed your function.]

Tfun <- function(DV,IV,group1) {

   g1 <- eval(substitute(DV[IV == g], list(g = group1)))    p <- mean(g1)
   list(g1,p)
  }
> with(TEST, Tfun(frequency, color, 'blue'))
[[1]]
[1] 3 4 3

[[2]]
[1] 3.333333

HTH,
Dennis

On Fri, Mar 11, 2011 at 7:49 PM, Tyler Rinker <tyler_rinker_at_hotmail.com>wrote:

>
> I am a new R user and am beginning to employ function creation in my
> statistical work. I am running into a problem when I want to pass on a
> character (text) to the function as an argument. I have a simple example
> below to demonstrate this problem. I cannot seem to find a fix in my R book
> or in the blog posts. I'm sure this has been covered before but my newbie
> status means I lack the R vocabulary to even search for this problem (I've
> tried for a few days to no avail). Someone has already attempted to explain
> this to me. I learn best by seeing. Could someone rewrite my code so that
> the function works. The function is very simple as is the data set so it
> should be pretty easy for an experienced R user to correct. The problem is
> that R doesn't transfer the "blue" subgroup from the argument to the
> function. I am excited with the potential of R and look forward to your
> help.
>
> I am a Windows user running R 2.12.2
>

> CODE for TEST FUNCTION
> > TEST<-function(DV,IV,group1) {
> + g1<-DV[IV=="group1"]
> + p<-mean(g1)
> + list(g1,p)
> + }
>

> R's OUTPUT
> > TEST(frequency,color,blue)
> [[1]]
> integer(0)
> [[2]]
> [1] NaN
>
>
> The DATA FRAME
> TEST<-read.table("TEST.csv", header=TRUE, sep=",",na.strings="999")
> > attach(TEST)
>
> color frequency
> 1 blue 3
> 2 blue 4
> 3 blue 3
> 4 green 5
> 5 green 2
> 6 green 4
> 7 green 5
> 8 green 1
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help_at_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.
>

        [[alternative HTML version deleted]]



R-help_at_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. Received on Sat 12 Mar 2011 - 09:53:03 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 12 Mar 2011 - 19:10:21 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive