R:Parse(+ eval)字符串,用作子集/ [的args。 NSE案例?

时间:2017-08-06 19:18:22

标签: r eval subset nse

在我的应用中,用户可以提供“子集化”表达式(由mix:变量,存储在变量中的名称 - 视频<select alert-select [(ngModel)]="area_id"> <option value="1">Area 1</option> <option value="2">Area 2</option> </select> args_input变量)作为subset_args_input / {的参数{1}}函数:

subset

我的期望是获得与执行相同的结果:

[

执行此操作:

df_data <- data.frame("a" = c(1,1,2), "b" = c(3,4,4), "c" = c(5,6,7)) global_data <- list("column_to_extract" = c("b")) args_input <- "list(df_data, df_data$a %in% c(1), global_data[['column_to_extract']])"

另外,我尝试过与do.call("[", list(df_data, df_data$a %in% c(1), global_data[['column_to_extract']])) 类似的东西:

do.call("[", eval(parse(text=args_input)))
  1. 这两种方法都有效,但需要subset + subset_args_input <- "list(quote(df_data), quote(a %in% c(1)), quote(global_data[['column_to_extract']]))" do.call("subset", eval(parse(text=subset_args_input))) ,如果允许用户传递任何字符串,则不安全。问题 - 如果没有eval + parse组合,可以获得相同的结果吗?
  2. 你们(R用户)请看一下上面的片段 - 对R哲学有什么不必要的东西吗?

0 个答案:

没有答案