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

Toby Hocking tdhock5 @end|ng |rom gm@||@com
Mon Jul 18 20:06:46 CEST 2022


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"]]
??

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]]



More information about the R-devel mailing list