dplyr piping 产生与使用相同代码的基本 R 语法不同的结果

dplyr piping produces different results than base R syntax utilizing same code

我正在进行一项学术练习,该练习展示了我对 dplyr 的理解存在问题。让我使用 base-R 语法重建鸢尾花数据集:

library(dplyr)

bind_cols(iris[1], iris[-1])

好的,太棒了。现在,我将使用 dplyr 传输所有内容 - 并且 - 它将 iris 数据集中的每一列加倍。这两段代码不应该产生相同的结果吗?

iris %>% bind_cols(.[1], .[-1])

请看以下内容。 iris %>% bind_cols(.[1], .[-1])bind_cols(iris, iris[1], iris[-1]) 相同,因为 bind_cols 的第一个参数是 %>% 之前的参数。所以结果对我来说很有意义。

aa <- iris %>% bind_cols(.[1], .[-1])

bb <- bind_cols(iris, iris[1], iris[-1])

identical(aa, bb)
# [1] TRUE