【问题标题】:Why does dplyr use ".data" as a parameter?为什么 dplyr 使用“.data”作为参数?
【发布时间】:2016-08-29 21:54:21
【问题描述】:

在 dplyr 的文档中,所有数据操作动词都有一个名为“.data”的参数。但是,R 中大多数涉及数据的参数都简称为“数据”。有谁知道为什么 dplyr 使用“.data”而不仅仅是“data”?

我已经通过多个信息来源找到了解释。但是,我需要能够向学生解释为什么会这样。因此,任何见解都将不胜感激。

以下是文档的链接供您参考: https://cran.r-project.org/web/packages/dplyr/dplyr.pdf

【问题讨论】:

  • 主要是为了避免名称冲突。少数情况下,基本函数的参数也以句点开头。
  • ...我花了一段时间才找到我想的例子:prcomp 有一个论点scale.。如果你仔细看,可能还有其他人。
  • 还有transform()
  • data 是一个 R 函数。使用也是函数名称的名称来命名数据对象被认为是不好的做法(其中包括 dflistnumericvector 等名称......所有这些都是函数。)哈德利可能没有不希望人们取笑他:-)
  • 是的,很遗憾,R 中有这么多以名词为名称的函数(如“数据”)。然而,R(以及它的前身 S)已经经历了许多软件开发范式的演变,所以我想这是意料之中的。

标签: r dplyr


【解决方案1】:

根据 joran、42 和 hadley(编写 dplyr)提供的 cmets,看来正确的答案是避免与 R 中基本包中的 data() 函数发生名称冲突。

这被认为是避免名称冲突的最佳做法,因此点前缀只是一个任意字符,用于区分 dplyr 中的 .data 参数与基本 R 包中的 data() 函数。

【讨论】:

  • 我认为与 data 函数的潜在冲突比与数据本身中的列名的潜在冲突/混淆更令人担忧。
猜你喜欢
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
相关资源
最近更新 更多