[R] How to dynamically replace the text behind dollar sign: '$'
David Winsemius
dwinsemius at comcast.net
Wed Feb 6 07:22:57 CET 2013
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
More information about the R-help
mailing list