R 如何解析符号';s值而不是符号';名称

R 如何解析符号';s值而不是符号';名称,r,rlang,R,Rlang,问题1: 排序(mtcars,“mpg”)相当于mtcars[order(“mpg”),]但不等于我想要得到的结果,即mtcars[order(mpg),],如何将其从字符串转换为列名 问题2: 类似的: sorting = function (table, column) { # mtcars[order(mpg),] return(table[order(column),]) } 我也是 comb(mtcars,“gearCarb”,c(“gear”,“carb”),“-”) 我得

问题1:

排序(mtcars,“mpg”)
相当于
mtcars[order(“mpg”),]
但不等于我想要得到的结果,即
mtcars[order(mpg),]
,如何将其从字符串转换为列名

问题2:

类似的:

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

comb(mtcars,“gearCarb”,c(“gear”,“carb”),“-”)

我得到了
colNNN
作为最后的列名


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

Q1可以通过
dplyr
中的
arrange_at
在不使用非标准求值的情况下解决

library(tidyr)
comb = function(table, colNNN, arr, sep) {
  return(unite(table, colNNN, all_of(arr), sep = sep))
}
对于Q2,我们可以使用
{{}

library(dplyr)
library(tidyr)
library(rlang)

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

sorting(mtcars, "mpg")

#    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#1  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
#2  10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
#3  13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
#4  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
#5  14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
#6  15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
#...

使用
dplyr
中的
arrange_at
可以在不使用非标准评估的情况下解决Q1

library(tidyr)
comb = function(table, colNNN, arr, sep) {
  return(unite(table, colNNN, all_of(arr), sep = sep))
}
对于Q2,我们可以使用
{{}

library(dplyr)
library(tidyr)
library(rlang)

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

sorting(mtcars, "mpg")

#    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#1  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
#2  10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
#3  13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
#4  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
#5  14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
#6  15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
#...
有关Q1的信息,请参阅,我建议您在那里使用
table[[column]]
。关于#2,请参阅tidyverse中的编程以及关于该主题的众多编程之一,特别是关于您的确切问题。请参阅有关Q1的信息,我建议您使用那里的
表[[column]]
。有关#2,请参阅tidyverse中的编程信息,以及关于该主题的众多信息之一,特别是关于您的确切问题。