R 使用交叉和.names进行变异:“;glue不能将函数插入字符串中”;错误

R 使用交叉和.names进行变异:“;glue不能将函数插入字符串中”;错误,r,dplyr,across,R,Dplyr,Across,我有按地区划分的不同候选人的选举结果。来源有每个候选人的票数和每个地区的总票数。我想为每个候选人在每个地区获得的选票百分比添加变量 我成功地使用mutate和cross将计票数替换为百分比,但在尝试使用.names参数创建新变量时出现错误(即我希望获得新变量,cand1_pct,cand2_pct,…) 库(tidyverse) df% 突变(跨越(2:4,~.x/总数*100)) #>地区cand1 cand2 cand3总计 #> 1 1 70.588235 11.76471

我有按地区划分的不同候选人的选举结果。来源有每个候选人的票数和每个地区的总票数。我想为每个候选人在每个地区获得的选票百分比添加变量

我成功地使用
mutate
cross
将计票数替换为百分比,但在尝试使用
.names
参数创建新变量时出现错误(即我希望获得新变量,
cand1_pct
cand2_pct
,…)

库(tidyverse)
df%
突变(跨越(2:4,~.x/总数*100))
#>地区cand1 cand2 cand3总计
#> 1        1 70.588235 11.76471 17.647059    17
#> 2        2  8.333333 25.00000 66.666667    24
#> 3        3 35.897436 58.97436  5.128205    39
df%>%
突变(跨越(2:4,~.x/total*100,.names=“{.col}\u pct”))
#>错误:“mutate()”输入“…1”有问题。
#>x glue无法将函数插入字符串中。
#>*对象“.col”是一个函数。
#>我输入的“…1”是跨越(2:4,~.x/total*100,.names=“{.col}\u pct”)`。
由(v0.3.0)于2020年8月12日创建

我最初认为这是我对
cross
的误解。名字应该是如何工作的,但是当我使用
cross
的例子时,我得到了同样的错误。我已经在我的本地机器和RStudio云上试过了<代码>dplyr
版本1.0.1

库(dplyr)
虹膜%>%
组别(种类)%>%
总结(跨越(以(“萼片”)开头)、平均值、.name=“平均值”{.col})
#>错误:“摘要()”输入“…1”有问题。
#>x glue无法将函数插入字符串中。
#>*对象“.col”是一个函数。
#>我输入的“…1”是“跨越(以(“萼片”)开头),意思是,.name=“mean”{.col}”)`。
#>i错误发生在第1组:Species=“setosa”。

由(v0.3.0)于2020年8月12日创建,根据跨
,它不是
.col
,只是
col

.names-默认值(NULL)对于单个函数的情况相当于“{col}”,对于.fns使用列表的情况相当于“{col}{fn}”


……情况发生了变化


根据最新的
dplyr 1.0.2
中的
?Cross
,现在建议使用
.col
,而不是
col

.names—描述如何命名输出列的粘合规范。这可以使用{.col}表示所选列名,{.fn}表示所应用函数的名称。默认值(NULL)相当于单个函数情况下的“{.col}”,对于.fns使用列表的情况下的“{.col}{.fn}”


更多信息和用例可在此处找到:

谢谢!我猜这是一个小插曲中的打字错误,或者是最近的变化。我看看能不能在什么地方报告。
library(dplyr)
df %>% 
   mutate(across(2:4, ~ .x/total*100, .names = "{col}_pct"))
#  district cand1 cand2 cand3 total cand1_pct cand2_pct cand3_pct
#1        1    12     2     3    17 70.588235  11.76471 17.647059
#2        2     2     6    16    24  8.333333  25.00000 66.666667
#3        3    14    23     2    39 35.897436  58.97436  5.128205