[Rd] Warning with new placeholder piped to data.frame extractors `[` and `[[`.

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu Jul 28 17:16:40 CEST 2022


>>>>> Toby Hocking 
>>>>>     on Mon, 18 Jul 2022 11:06:46 -0700 writes:
>>>>> Toby Hocking 
>>>>>     on Mon, 18 Jul 2022 11:06:46 -0700 writes:

    > Is the intent is to encourage the user to do something simpler like...
    > aggregate(y ~ f, df1, mean)$y
    > aggregate(y ~ f, df1, mean)["y"]
    > aggregate(y ~ f, df1, mean)[["y"]]
    > ??

Well, yes I'd hope so !!

Just because there is a pipe operator does not mean you should
no longer use reasonable R syntax !

Martin

    > On Sat, Jul 16, 2022 at 8:27 AM Rui Barradas <ruipbarradas using sapo.pt> wrote:

    >> Hello,
    >> 
    >> When piping to any of `[.data.frame` or `[[.data.frame`, the placeholder
    >> in mandatory.
    >> 
    >> 
    >> df1 <- data.frame(y = 1:10, f = rep(c("a", "b"), each = 5))
    >> 
    >> aggregate(y ~ f, df1, mean) |> `[`('y')
    >> # Error: function '[' not supported in RHS call of a pipe
    >> 
    >> aggregate(y ~ f, df1, mean) |> `[[`('y')
    >> # Error: function '[' not supported in RHS call of a pipe
    >> 
    >> 
    >> 
    >> But if used it throws a warning.
    >> 
    >> 
    >> 
    >> aggregate(y ~ f, df1, mean) |> `[`(x = _, 'y')
    >> #  Warning in `[.data.frame`(x = aggregate(y ~ f, df1, mean), "y"):
    >> named arguments
    >> #  other than 'drop' are discouraged
    >> #    y
    >> #  1 3
    >> #  2 8
    >> 
    >> aggregate(y ~ f, df1, mean) |> `[[`(x = _, 'y')
    >> #  Warning in `[[.data.frame`(x = aggregate(y ~ f, df1, mean), "y"): named
    >> #  arguments other than 'exact' are discouraged
    >> #  [1] 3 8
    >> 
    >> 
    >> 
    >> Hasn't this become inconsistent behavior?
    >> More than merely right, the named argument is mandatory, it shouldn't
    >> give warnings.
    >> 
    >> Hope this helps,
    >> 
    >> Rui Barradas
    >> 
    >> ______________________________________________
    >> R-devel using r-project.org mailing list
    >> https://stat.ethz.ch/mailman/listinfo/r-devel
    >> 

    > [[alternative HTML version deleted]]

    > ______________________________________________
    > R-devel using r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list