2
我正在尝试在R中构建一个子集函数,它将接受数据框以及列名,并使用概述here的lazyeval方法解决问题。这里是我的代码:R中的Lazyeval - 我如何构建子集函数?
iris_fun <- function(df, selection_var, selection_input){
temp <- subset(df, ~.data[[.env$selection_var]] == .env$selection_input)
return(temp)
}
当我尝试与调用此:
iris_fun(iris, "Species", "setosa")
我得到一个错误信息:
错误subset.data.frame(DF,〜。数据[[。env $ selection_var]] == selection_input): '子集'必须为逻辑
A dvice赞赏!
你的问题没有任何意义。你想做什么,真的吗? –
@HongOoi,我正在尝试构建一个函数,该函数将根据给定条件(实际上来自另一个数据框)对数据框进行子集合。现在,我试图让第一部分工作 - 基于变量和值的子集,这些变量和值将作为函数的输入(以及数据框)。 –
在那个例子中,hadley重新定义了'subset',因此它不再是'base :: subset' – rawr