【发布时间】:2020-01-15 13:35:46
【问题描述】:
我在将字符串传递给使用 dplyr 的函数时遇到问题。
首先,我有一个简单的版本,可以产生我想要的输出,但没有按我想要的方式调用。
接下来,我将展示一个版本,在该版本中我以我想调用的方式调用函数,即使该版本不起作用。
这会产生我想要的结果:
car_column <- function(d,Column,Value,Regex) {
d %>%
filter(str_detect(car_name, regex('mazda', ignore_case = TRUE))) %>%
rename(Measurement = mpg) %>%
select(car_name, Measurement)
}
mtcars %>%
tibble::rownames_to_column() %>%
rename(car_name = rowname) %>%
car_column(car_name, mpg, "mazda")
这段代码调用了我想要调用的函数。请注意,“car_name”很难 在此函数定义中编码,但应更改为“列”。
car_column <- function(d,Column,Value,Regex, Statistic) {
d %>%
filter(str_detect(car_name, regex(Regex, ignore_case = TRUE))) %>%
rename({{Statistic}}:= {{Value}}) %>%
select({{Column}}, {{Statistic}})
}
mtcars %>%
tibble::rownames_to_column() %>%
rename(car_name = rowname) %>%
car_column("car_name", "mpg", "mazda","Measurement")
【问题讨论】:
-
是的,它是重复的。