访问dplyr中点(.)的先前定义/参考

访问dplyr中点(.)的先前定义/参考,r,dplyr,R,Dplyr,如何在以下代码中引用打印函数中的整行: df %>% rowwise() %>% mutate_at(vars(cols), funs({ print(<REFERENCE_FULL_ROW_HERE>); . })) df%>% 行() 突变_at(vars(cols), funs({print();.})) 其中,cols是我要更改的列名向量。您可以尝试使用purr包中的pmap或pwalk。我发现这对解决这些问题非常有帮助 如果只

如何在以下代码中引用打印函数中的整行:

df %>%
  rowwise() %>%
  mutate_at(vars(cols),
            funs({ print(<REFERENCE_FULL_ROW_HERE>); . }))
df%>%
行()
突变_at(vars(cols),
funs({print();.}))

其中,
cols
是我要更改的列名向量。

您可以尝试使用
purr
包中的
pmap
pwalk
。我发现这对解决这些问题非常有帮助

如果只想调用函数的副作用,而不想存储返回值,可以使用
pwalk
使用解决方案。如果要存储返回值,请在
mutate
调用中使用
pmap

库(tidyverse)
普瓦克(
水头(mtcars,n=5),
函数(…){
cols[1]“6 21”
#> [1] "6 21"
#> [1] "4 22.8"
#> [1] "6 21.4"
#> [1] "8 18.7"
汽车争吵了%
变异(
结果=pmap(
.,
函数(…){
cols mpg cyl disp hp drat wt qsec vs am齿轮carb结果
#> 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4   6 21
#> 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4   6 21
#> 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 4 22.8
#> 4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 6 21.4
#> 5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 8 18.7
#> 6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 6 18.1

由(v0.2.1)创建于2019-04-08。您可以尝试使用
purr
包中的
pmap
pwalk
。我发现这对此类问题非常有用

如果您只想调用函数的副作用,而不想存储返回值,可以使用
pwalk
使用解决方案。如果您想存储返回值,请在
mutate
调用中使用
pmap

库(tidyverse)
普瓦克(
水头(mtcars,n=5),
函数(…){
cols[1]“6 21”
#> [1] "6 21"
#> [1] "4 22.8"
#> [1] "6 21.4"
#> [1] "8 18.7"
汽车争吵了%
变异(
结果=pmap(
.,
函数(…){
cols mpg cyl disp hp drat wt qsec vs am齿轮carb结果
#> 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4   6 21
#> 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4   6 21
#> 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 4 22.8
#> 4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 6 21.4
#> 5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 8 18.7
#> 6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 6 18.1

由(v0.2.1)创建于2019-04-08这看起来非常像XY问题。我认为没有任何(好的)这是一种完全满足您要求的方法。但是如果您告诉我们更大的问题,我认为我们可以帮助您解决它。您想要的输出是什么?我几乎用
.data
代词解决了它,但我无法用
.data[[cols]]引用我需要的所有列
,它给了我一个错误。这看起来很像一个XY问题。我认为没有(好的)这是一种完全满足您要求的方法。但是如果您告诉我们更大的问题,我认为我们可以帮助您解决它。您想要的输出是什么?我几乎用
.data
代词解决了它,但我无法用
.data[[cols]]
引用我需要的所有列,这给了我一个错误。