[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