【发布时间】:2021-12-11 05:55:36
【问题描述】:
考虑以下玩具问题。
我想四舍五入drat 和wt。
这是执行此操作的常规方法:
library(tidyverse)
mtcars[1 ,5:7] %>%
mutate(across(.cols = c(drat, wt), .fns = round))
#> drat wt qsec
#> Mazda RX4 4 3 16.46
但我想做的是从数据中选择drat 和wt。
如下所示(不运行)。
我该怎么做?
mtcars_2 <-
mtcars[1 ,5:7] %>%
bind_cols(data.frame(cols_to_modify = "c(drat, wt)"))
## view data
mtcars_2
#> drat wt qsec cols_to_modify
#> Mazda RX4 3.9 2.62 16.46 c(drat, wt)
## my failed attempt
mtcars_2 %>%
mutate(across(.cols = eval(substitute(.$cols)),.fns = round))
#> Error: Problem with `mutate()` input `..1`.
#> ℹ `..1 = across(.cols = eval(substitute(.$cols)), .fns = round)`.
#> x Can't subset columns that don't exist.
#> x Column `c(drat, wt)` doesn't exist.
由reprex package 创建于 2021-10-25 (v2.0.1)
【问题讨论】: