R:如何解析符号的值而不是符号的名称

问题描述 投票:0回答:1

Q1:

sorting = function (table, column) {
  # mtcars[order(mpg),]
  return(table[order(column),])
}

[sorting(mtcars, "mpg")等效于mtcars[order("mpg"),],但不等于我想要获得的结果,即mtcars[order(mpg),],如何将其从字符串转换为列名。

Q2:

类似:

library(tidyr)
comb = function(table, colNNN, arr, sep) {
  return(unite(table, colNNN, all_of(arr), sep = sep))
}

而且我愿意

comb(mtcars,"gearCarb",c("gear","carb"), "-")

并且我得到colNNN作为最后的列名,

那么如何将符号转换为字符串?

r rstudio rlang
1个回答
0
投票

Q1可以解决,而无需使用非标准评估

library(dplyr)

sorting = function (table, column) {
   return(table %>% arrange_at(column))
}

sorting(mtcars, "mpg")

对于第二季度,我们可以使用{{}}

comb = function(table, colNNN, arr, sep) {
  return(unite(table, {{colNNN}}, arr, sep = sep))
}

comb(mtcars,"gearCarb",c("gear","carb"), "-")
© www.soinside.com 2019 - 2024. All rights reserved.