Is the following intended or not? > func<- function(y) match.call()
> z <- func(y =2) > z func(y = 2) > z[["a"]] <- 5 > z func(y = 2, 5) ## Note that the second argument **is not** named ## BUT... > z <- func(y =2) > z$a <- 5 > z func(y = 2, a = 5) ## The second argument **is** named ### End of example code ### The reason I ask is that the man page for [[ specifically says: ************** Both [[ and $ select a single element of the list. The main difference is that $ does not allow computed indices, whereas [[ does. x$name is equivalent to x[["name", exact = FALSE]]. Also, the partial matching behavior of [[ can be controlled using the exact argument. [ and [[ are sometimes applied to other recursive objects such as calls and expressions. Pairlists are coerced to lists for extraction by [, but all three operators can be used for replacement. ******** I (mis?)read this as saying the behavior in the code snippets above should produce identical results. I note that the above inconsistency can be trivially avoided by first coercing the call object to a list, modifying it either way, and then coercing it back to a call object. I doubt if it makes a difference, but: > version _ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status Patched major 2 minor 8.0 year 2008 month 10 day 23 svn rev 46779 language R version.string R version 2.8.0 Patched (2008-10-23 r46779) Cheers, Bert Gunter ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.