[R] Calling a procedure
Steven Yen
@tyen @end|ng |rom ntu@edu@tw
Sun Sep 20 13:23:06 CEST 2020
Thanks. So, to be safe, always a good idea to give the argument, e.g.,
q=1.96, log.p=FALSE, skipping mean=0 and sd=1 if not needed. Thanks.
pnorm(q=1.96, log.p = FALSE)
On 2020/9/20 下午 06:36, Rui Barradas wrote:
> Hello,
>
> You are making a confusion between
>
> 1. the formal argument log.p
> 2. the variable log.p
>
> In the function body, log.p is a variable that exists in the
> function's frame, not the formal argument of pnorm.
> The first and the 3rd calls that follow output the same value.
>
> try(x = 1.2, log.p = TRUE)$a
> try(x = 1.2, log.p = TRUE)$b
> try(x = 1.2, 1)$a
>
> This is because in the function
>
> a<-pnorm(x,log.p) # first call
>
> passes log.p as the *second* argument, not as a value for pnorm's
> formal argument log.p. Unless when named, the arguments are passed in
> the order they appear in the function's definition:
>
> pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
>
> and that becomes
>
> a<-pnorm(x,TRUE) # first call
> a<-pnorm(x,1) # first call, coerced to numeric.
>
>
> Let me give another example. In the function that follows the default
> is z = FALSE.
>
> In the first call the name z is not the name of the argument, it's the
> name of a variable that exists in the .GlobalEnv.
>
> In the second call, z = z assign the formal argument z the value of
> the variable z.
>
>
> f <- function(x, y = 0, z = FALSE){
> a <- x
> b <- y
> d <- z
> list(a = a, b = b, d = d)
> }
> z <- 2
> f(1, z)
> f(1, z = z)
>
>
> Hope this helps,
>
> Rui Barradas
>
> Às 11:11 de 20/09/20, Steven Yen escreveu:
>> Can someone tell me a proper call to a procedure, in this case,
>> pnorm. In what follows, I had expected a = b, but they are not equal.
>> What are wrong with first call and second call? Thank you!
>>
>> try<-function(x,log.p=FALSE){
>> a<-pnorm(x,log.p) # first call
>> b<-pnorm(x,log.p=log.p) # second call
>> list(a=a,b=b)
>> }
>>
>> try(x=1.2,log.p=TRUE)$a
>> try(x=1.2,log.p=TRUE)$b
>>
>> ______________________________________________
>> R-help using 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.
[[alternative HTML version deleted]]
More information about the R-help
mailing list