R 如何解析符号';s值而不是符号';名称
问题1: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”),“-”) 我得
排序(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中的编程信息,以及关于该主题的众多信息之一,特别是关于您的确切问题。