[R] reference to objects

Giampiero Salvi giampi at speech.kth.se
Fri Jan 16 14:54:57 CET 2004


Thanks for your answer,

> Yes, that will create two copies.  What is it you want to do with the data?
> Do you want the capability of both of them changing the data?  What type of
> processing are you going to do?

The data should be read only (and all the objects share the same data values).

> One way is to store the 'name' of the object in the location and then use
> 'get/assign' to reference the data:
>
> obj1$dist <- 'dist'
> obj2$dist <- 'dist'
>
> my.sum <- sum(get(obj1$data))
> assign(obj1$data, new.values)

The problem with this solution is that I would like to use those objects with
already existing libraries, and thus I cannot choose how the data is read.
To explain better, I look for a way to reference to the data that is transparent
to the application.

In C this would be done by assigning the pointer to the data structure, for example
if dist is a C structure and obj1/2 contain a pointer called dist to that kind of
structure, I would do:

obj1->dist = &dist;
obj2->dist = &dist;

and then the rest of the code would not even know if obj1->dist is shared among different
objects....

Thanks again,
Giampiero

>
>
> __________________________________________________________
> James Holtman        "What is the problem you are trying to solve?"
> Executive Consultant  --  Office of Technology, Convergys
> james.holtman at convergys.com
> +1 (513) 723-2929
>
>
>
>                       Giampiero Salvi
>                       <giampi at speech.kth.se        To:       r-help at stat.math.ethz.ch
>                       >                            cc:
>                       Sent by:                     Subject:  [R] reference to objects
>                       r-help-bounces at stat.m
>                       ath.ethz.ch
>
>
>                       01/16/2004 08:22
>
>
>
>
>
>
> Hi,
> is there a way to reference to a data object without copying it?
>
> For example I have a huge matrix called dist and I want two objects
> obj1 and obj2 to have a memeber dist that points to the matrix, but
> I don't want, for memory reasons, to copy the matrix twice.
>
> As far as I understand the following code will generate three copies
> of my data:
>
> dist <- some_code_that_generates_data
> obj1$dist <- dist
> obj2$dist <- dist
>
> Thank you!
> Giampiero
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
>
>
> --
> "NOTICE:  The information contained in this electronic mail transmission is
> intended by Convergys Corporation for the use of the named individual or
> entity to which it is directed and may contain information that is
> privileged or otherwise confidential.  If you have received this electronic
> mail transmission in error, please delete it from your system without
> copying or forwarding it, and notify the sender of the error by reply email
> or by telephone (collect), so that the sender's address records can be
> corrected."
>
>
>




More information about the R-help mailing list