On Wed, 19 Jan 2005, Peter Muhlberger wrote:
By not allowing any straightforward passing by reference, R strikes me as a lot less flexible & useful than it might be. A basic operation in other stats languages is to update a dataset using a program. This proves very helpful for managing data and setting up analyses. But, this seems to be quite inelegant to do in R.
I don't see why
mydata <- some.program(mydata)
is much less elegant than
mydata.someProgram()
as a way of updating a data set. It may use more memory, but that wasn't the point at issue.
Of course there are advantages to the ability to pass by reference, and disadvantages -- the most obvious disadvantage is that it is not easy to tell which variables are modified by a given piece of code.
It probably wouldn't be that hard to produce something that looked like a data frame but was passed by reference, by wrapping it in a environment.
-thomas
Peter
On 1/19/05 6:16 AM, "[EMAIL PROTECTED]" From: Thomas Lumley <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> wrote:
Yes and no.
This isn't so much a question of pass-by-reference, as one reply suggested, but of macros vs functions.
Stata is (largely) a macro language: it does operations on command strings and then evaluates them. It's not that Stata programs work with references, it's that all objects (except local macros) are global.
R is based on functions: it evaluates arguments and then operates on them. When you have functions, with local variables, it then becomes relevant to ask whether the arguments to the function are just copies or are references to the real thing. In R they are just copies (from a language point of view) but are often references from an efficiency point of view.
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Thomas Lumley Assoc. Professor, Biostatistics [EMAIL PROTECTED] University of Washington, Seattle
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
