R df<;-mpg,列名称<;-hwy,如何呼叫mpg$hwy?df[col_name]不';行不通

R df<;-mpg,列名称<;-hwy,如何呼叫mpg$hwy?df[col_name]不';行不通,r,dataframe,R,Dataframe,我想调用filter(df,col\u name==value),比如filter(mpg,hwy==27) df <- mpg col_name <- 'hwy' value <- 27 col <- df[col_name] filter(df, col == value) df我们可以使用.data library(dplyr) filter(df, .data[[col_name]] == value) -输出 # A tibble: 14 x 11

我想调用
filter(df,col\u name==value)
,比如
filter(mpg,hwy==27)

df <- mpg
col_name <- 'hwy'
value <- 27
col <- df[col_name]
filter(df, col == value)

df我们可以使用
.data

library(dplyr)
filter(df,  .data[[col_name]] == value)
-输出

# A tibble: 14 x 11
   manufacturer model        displ  year   cyl trans      drv     cty   hwy fl    class     
   <chr>        <chr>        <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr>     
 1 audi         a4             3.1  2008     6 auto(av)   f        18    27 p     compact   
 2 audi         a4 quattro     2    2008     4 auto(s6)   4        19    27 p     compact   
 3 chevrolet    malibu         2.4  1999     4 auto(l4)   f        19    27 r     midsize   
 4 hyundai      sonata         2.4  1999     4 manual(m5) f        18    27 r     midsize   
 5 hyundai      tiburon        2    2008     4 auto(l4)   f        20    27 r     subcompact
 6 nissan       altima         2.4  1999     4 auto(l4)   f        19    27 r     compact   
 7 nissan       altima         3.5  2008     6 manual(m6) f        19    27 p     midsize   
 8 pontiac      grand prix     3.8  1999     6 auto(l4)   f        17    27 r     midsize   
 9 subaru       forester awd   2.5  2008     4 manual(m5) 4        20    27 r     suv       
10 subaru       impreza awd    2.5  2008     4 auto(s4)   4        20    27 r     compact   
11 subaru       impreza awd    2.5  2008     4 manual(m5) 4        20    27 r     compact   
12 toyota       camry          2.2  1999     4 auto(l4)   f        21    27 r     midsize   
13 toyota       camry solara   2.2  1999     4 auto(l4)   f        21    27 r     compact   
14 toyota       camry solara   3.3  2008     6 auto(s5)   f        18    27 r     compact   

注意:这里我们使用

col_name <- "hwy"

col\u name这两种方法都为me@Mark您是否正在使用
col\u name@Mark请注意,当您将同一对象分配给
df[col\u name]
时,它现在是一个data.frame,有一列,与您第一次分配的字符串相反。我在运行您的时使用了
col\u name,我忘了存储值
df[[col_name]
请参见df[[col_name]]也不适用于meIt,返回值是一个包含14行11列的df。我从错误消息中假设您使用的是
dplyr::filter
,但请注意所有非基R函数的来源
col_name <- "hwy"