Skip to content
Prev 31769 / 63424 Next

surprising behaviour of names<-

Wacek Kusnierczyk wrote:
Only the ideology/pragmatism... In principle, R has call-by-value
semantics and a function does not destructively modify its arguments(*),
and foo(x)<-bar behaves like x <- "foo<-"(x, bar). HOWEVER, this has
obvious performance repercussions (think x <- rnorm(1e7); x[1] <- 0), so
we do allow destructive modification by replacement functions, PROVIDED
that the x is not used by anything else. On the least suspicion that
something else is using the object, a copy of x is made before the
modification.

So

(A) you should not use code like y <- "foo<-"(x, bar)

because

(B) you cannot (easily) predict whether or not x will be modified
destructively

--------
(*) unless you mess with match.call() or substitute() and the like. But
that's a different story.

Thread (49 messages)

Wacek Kusnierczyk surprising behaviour of names<- Mar 10 Peter Dalgaard surprising behaviour of names<- Mar 10 Wacek Kusnierczyk surprising behaviour of names<- Mar 10 Stavros Macrakis surprising behaviour of names<- Mar 10 Wacek Kusnierczyk surprising behaviour of names<- Mar 10 Wacek Kusnierczyk surprising behaviour of names<- Mar 10 Wacek Kusnierczyk surprising behaviour of names<- Mar 10 Simon Urbanek surprising behaviour of names<- Mar 11 Simon Urbanek surprising behaviour of names<- Mar 11 Wacek Kusnierczyk surprising behaviour of names<- Mar 11 Wacek Kusnierczyk surprising behaviour of names<- Mar 11 Berwin A Turlach surprising behaviour of names<- Mar 12 Berwin A Turlach surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Berwin A Turlach surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Berwin A Turlach surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Berwin A Turlach surprising behaviour of names<- Mar 12 Simon Urbanek surprising behaviour of names<- Mar 12 G. Jay Kerns surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Joshua Ulrich surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 12 Berwin A Turlach surprising behaviour of names<- Mar 12 Wacek Kusnierczyk surprising behaviour of names<- Mar 13 Berwin A Turlach surprising behaviour of names<- Mar 13 Wacek Kusnierczyk surprising behaviour of names<- Mar 13 William Dunlap surprising behaviour of names<- Mar 13 Tony Plate surprising behaviour of names<- Mar 13 Wacek Kusnierczyk surprising behaviour of names<- Mar 13 Wacek Kusnierczyk surprising behaviour of names<- Mar 13 Tony Plate surprising behaviour of names<- Mar 13 Wacek Kusnierczyk surprising behaviour of names<- Mar 13 Berwin A Turlach surprising behaviour of names<- Mar 13 Wacek Kusnierczyk surprising behaviour of names<- Mar 13 Thomas Lumley surprising behaviour of names<- Mar 14 Berwin A Turlach surprising behaviour of names<- Mar 14 Wacek Kusnierczyk surprising behaviour of names<- Mar 14 Wacek Kusnierczyk surprising behaviour of names<- Mar 15 Berwin A Turlach surprising behaviour of names<- Mar 15 Thomas Lumley surprising behaviour of names<- Mar 16 Wacek Kusnierczyk surprising behaviour of names<- Mar 16 Wacek Kusnierczyk surprising behaviour of names<- Mar 16