假设我有以下数据:
test_df <- data.frame(a=rnorm(100), b=rnorm(100))
Run Code Online (Sandbox Code Playgroud)
以下作品:
test_df %>%
summarise(y = mean(a))
Run Code Online (Sandbox Code Playgroud)
现在假设不是a我想传递一个字符串
string_outcome <- "a" # I want to use this
test_df %>%
summarise(y = mean(string_outcome))
Run Code Online (Sandbox Code Playgroud)
那行不通。我尝试使用,!!string_outcome但这也不起作用。我怎样才能解决这个问题?
由于它是字符串,因此将其转换为符号(symfrom rlang)并求值(!!)
test_df %>%
summarise(y = mean(!! rlang::sym(string_outcome)))
Run Code Online (Sandbox Code Playgroud)
或者使用summarise_at可以在vars参数中使用字符串的
test_df %>%
summarise_at(vars(string_outcome), list(y = ~ mean(.)))
Run Code Online (Sandbox Code Playgroud)
或者,如果我们需要不带任何属性的单个值,甚至pull有mean可以使用
test_df %>%
pull(string_outcome) %>%
mean
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |