Надеюсь, это проиллюстрирует цитату в вашем вопросе:
``` r
library(dplyr)
iris[48:52,] %>%
group_by(Species) %>%
transmute(
Sepal.Length,
col0 = mean(Sepal.Length),
col1 = mean(.$Sepal.Length),
col2 = mean(.data$Sepal.Length))
#> # A tibble: 5 x 5
#> # Groups: Species [2]
#> Species Sepal.Length col0 col1 col2
#> <fct> <dbl> <dbl> <dbl> <dbl>
#> 1 setosa 4.6 4.97 5.66 4.97
#> 2 setosa 5.3 4.97 5.66 4.97
#> 3 setosa 5 4.97 5.66 4.97
#> 4 versicolor 7 6.7 5.66 6.7
#> 5 versicolor 6.4 6.7 5.66 6.7
```
Я думаю, что некоторые хотели бы использовать его для передачи аргументов в виде строк без !!sym(foo)
гимнастики:
col <- "Species"
iris[48:52,] %>%
mutate(
SPECIES1 = toupper(!!sym(col)),
SPECIES2 = toupper(.data[[col]]))
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species SPECIES1
#> 1 4.6 3.2 1.4 0.2 setosa SETOSA
#> 2 5.3 3.7 1.5 0.2 setosa SETOSA
#> 3 5.0 3.3 1.4 0.2 setosa SETOSA
#> 4 7.0 3.2 4.7 1.4 versicolor VERSICOLOR
#> 5 6.4 3.2 4.5 1.5 versicolor VERSICOLOR
#> SPECIES2
#> 1 SETOSA
#> 2 SETOSA
#> 3 SETOSA
#> 4 VERSICOLOR
#> 5 VERSICOLOR
Что бы это ни стоило, мне пришлось использовать .data
, может быть, всего 3 раза, и когда я это делал, был, вероятно, лучший способ сделать это.Я думаю, один или два из тех, где с ggplot2
.
В основном вы можете игнорировать существование .data
и все равно стать очень приличным нидзя.