Hello, Doing typeof() on an object appears to reset the "named" field in its sxpinfo header to 2, which can change the way that subsequent subassignment operations are carried out:
X <- 1:5e7 .Internal(inspect(X)) # @4eeb0008 13 INTSXP g0c7 [NAM(1)] (len=50000000, tl=0) 1,2,3,4,5,... system.time(X[1] <- 9L) # user system elapsed # 0 0 0 typeof(X) .Internal(inspect(X)) # @4eeb0008 13 INTSXP g1c7 [MARK,NAM(2)] (len=50000000, tl=0) 9,2,3,4,5,... system.time(X[2] <- 9L) # user system elapsed # 0.16 0.08 0.23 Some other functions that query the nature of an object (e.g. class(), length(), attributes()) do not modify the object's "named" field. Is there a reason that typeof() should? (Possibly of interest is this somewhat related thread on Stack Overflow: http://stackoverflow.com/questions/15559387/operator-in-rstudio-and-r/15559956#15559956 ). ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel