[R] Help with non standard evaluation and require function
    peter dalgaard 
    pdalgd at gmail.com
       
    Sun Aug 14 11:46:59 CEST 2016
    
    
  
> On 14 Aug 2016, at 11:23 , Luca Cerone <luca.cerone at gmail.com> wrote:
> 
> I have no access to my laptop so I can't double check but I think in one of
> Wickham's book there was an example like
> 
> f <- function (y) {
>  substitute (x + y)
> }
> 
> f(4)
> [1] x + 4
> 
> i.e. where substitute inside a function was substituting the value of y and
> returned the expression replacing y with 4, which is what I would expect to
> happen.
> 
In a word: no.
> f <- function (y) {
+  substitute (x + y)
+ }
> 
> f(4)
x + 4
> f(z)
x + z
i.e., it is not the value of y, but the expression passed for y that gets substituted.
There are subtleties: If y is computed inside the function, the connection to the argument expression is lost, and then the value is in fact used:
> z <- pi
> f <- function (y) { y <- y
+  substitute (x + y)
+ }
> f(z)
x + 3.14159265358979
It is usually a better idea to handle these issues with bquote(), though.
-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
    
    
More information about the R-help
mailing list