小编con*_*-ae的帖子

在 dplyr::summarize() 中设置向量的属性有什么影响?

我刚刚遇到了一些奇怪的行为,其中dplyr不断summarize引用前一组中的对象。

\n

这是一个简单的可重复示例来说明令人惊讶的行为:

\n
library(dplyr, warn.conflicts = FALSE)\ntibble(x = rep(letters[1:3], times = 4),\n       y = rnorm(12)) %>%\n  group_by(x) %>%\n  summarize(z1 = sum(y),\n            z2 = {\n              attr(y, "test") <- "test"\n              sum(y)\n            })\n#> # A tibble: 3 \xc3\x97 3\n#>   x         z1    z2\n#>   <chr>  <dbl> <dbl>\n#> 1 a      0.602 0.602\n#> 2 b      1.22  0.602\n#> 3 c     -0.310 0.602\n
Run Code Online (Sandbox Code Playgroud)\n

由reprex 包于 2022 年 10 月 31 日创建(v2.0.1)

\n

我期望的是z1z2是相同的。我不明白为什么为向量设置属性y意味着在以后的迭代中,对“正确”元素的引用y被隐藏。

\n …

r dplyr non-standard-evaluation

7
推荐指数
1
解决办法
95
查看次数

标签 统计

dplyr ×1

non-standard-evaluation ×1

r ×1