Dear R developers, sessionInfo() below
Please have a look at the following two versions of the same function: 1. Intended behavior: > Su1 = function(u=100, l=u, mu=0.53, sigma2=4.3^2) + { + print(c(u, l, mu)) # here, l is set to u’s value + u = u/sqrt(sigma2) + l = l/sqrt(sigma2) + mu = mu/sqrt(sigma2) + print(c(u, l, mu)) + } > > Su1() [1] 100.00 100.00 0.53 [1] 23.2558140 23.2558140 0.1232558 In the first version, both u and l are correctly divided by 4.3. 2. Strange behavior: > Su2 = function(u=100, l=u, mu=0.53, sigma2=4.3^2) + { + # print(c(u, l, mu)) + u = u/sqrt(sigma2) + l = l/sqrt(sigma2) # here, l is set to u’s value + mu = mu/sqrt(sigma2) + print(c(u, l, mu)) + } > > Su2() [1] 23.2558140 5.4083288 0.1232558 In the second version, the print function is commented out, so the variable u is copied to l (lowercase L) at a later place, and L is divided twice by 4.3. Is this behavior intended? It seems strange that the result depends on a debugging message. Best wishes, Matthias > sessionInfo() R version 3.4.1 (2017-06-30) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200) Matrix products: default locale: [1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 [4] LC_NUMERIC=C LC_TIME=German_Germany.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.4.1 tools_3.4.1 [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.