使用with()从R数据框访问任意列

joh*_*ite 9 r dataframe

假设我有一个数据框,其中一个列的名称存储在一个变量中.使用括号表示法很容易使用变量访问此列:

df <- data.frame(A = rep(1, 10), B = rep(2, 10))
column.name <- 'B'

df[,column.name]
Run Code Online (Sandbox Code Playgroud)

但是如何使用调用来访问任意列并不明显with().天真的做法

with(df, column.name)
Run Code Online (Sandbox Code Playgroud)

有效地评估column.name呼叫者的环境.如何充分推迟评估,with()以提供与括号相同的结果?

Edu*_*oni 17

你可以使用get:

with(df, get(column.name))
Run Code Online (Sandbox Code Playgroud)