Thanks for the input, but it looks like I found a simple solution.
Turns out that if you assign to lists by name, then R doesn't make extra
copies:
x-double(10^9)
mylist-list()
system.time(mylist[[1]]-x)
user system elapsed
2.992 3.352 6.364
x-double(10^9)
mylist-list()
Usually R is pretty good about not copying objects when it doesn't need
to. However, the list() function seems to make unnecessary copies. For
example:
system.time(x-double(10^9))
user system elapsed
1.772 4.280 7.017
system.time(y-double(10^9))
user system elapsed
2.564
If you don't want to copy the data, you can use environments. You can first
define x and y in the global environment and then in the function, use
function get() to get x, y in the global environment. When you change x and
y in the function, x and y also change in the global environment.
Best,
On Aug 16, 2013, at 2:23 PM, Gang Peng wrote:
If you don't want to copy the data, you can use environments. You can first
define x and y in the global environment and then in the function, use
function get() to get x, y in the global environment. When you change x and
y in the function, x
4 matches
Mail list logo