This pronoun allows you to be explicit when you refer to an object inside the data. Referring to the .data pronoun rather than to the original data frame has several advantages:

  • It makes it easy to refer to column names stored as strings. If var contains the column "height", the pronoun will subset that column:

    var <- "height"
    dplyr::summarise(df, mean(.data[[var]]))

    The index variable var is unquoted, which ensures a column named var in the data frame cannot mask it. This makes the pronoun safe to use in functions and packages.

  • Sometimes a computation is not about the whole data but about a subset. For example if you supply a grouped data frame to a dplyr verb, the .data pronoun contains the group subset.

  • It lets dplyr know that you're referring to a column from the data which is helpful to generate correct queries when the source is a database.

The .data object exported here is useful to import in your package namespace to avoid a R CMD check note when referring to objects from the data mask.