On Feb 5, 2013, at 8:07 PM, 谢一鸣 wrote:

Dear ALL,

I need a function that takes character string as argument value and replaces corresponding argument( which is behind dollar sign "$") in function body with its value.

For example:

function(dataframe, argument="ANYTHING I WANT")
{
      return(dataframe$argument)
}

Even though I know there must be lots of possible alternative ways to do this, I really want to do the job just like the form in the above example and which I believe that has a close connection with "Programming on language" style(I read the term on some guides but really got no clue whether I refer to it here in a right way). Anyone who happens to know the method or the mechanism please kindly let me know. Thank you very much, and please reply in very simple English, because i am a poor English user.

The "$" construction is only a syntactic shortcut for "[["argument"]]. What you are looking for is described in the ?"[[" page. You should be constructing a formal that is assigned a syntactically legal column name ... NOT "ANYTHING I WANT". Perhaps:

function(dfrm , colname = "V1") {
      return( dfrm[[ colname ]] )
# the argument will get evaluated as "V1" unless an alternate colname argument is supplied
      }

( You can't get "$" to evaluate a character column name.)

--
David Winsemius, MD
Alameda, CA, USA

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

Reply via email to