我想了解如何在函数中处理变量名的输入。例如,我写了一个这样的函数:
bin_multi <- function(y, dataframe, sel = NULL){
if(!is.null(sel)) {
dataframe <- dataframe[,sel]}
else {
dataframe <- dataframe[!y]}
}
dataframe
是输入数据框,y
是数据框中的目标变量,sel
是dataframe
中列的选择,例如{{1} }}。
此功能的目的是简单地将sel = c(1,2,3)
的子集与给定的dataframe
一起使用,如果未给出sel
,则排除sel
目标变量y
。
我的问题是,如何在此功能中正确引用dataframe
?在输入中,y
是变量的名称。 y
可以解决这个问题吗?
谢谢大家。
答案 0 :(得分:0)
我认为这会奏效:
bin_multi <- function(y, dataframe, sel = NULL){
if(!is.null(sel)) {
dataframe <- dataframe[,sel]
} else {
dataframe <- dataframe[,which(names(dataframe) != deparse(substitute(y)))]
}
}
在this answer上绘图以将您的对象名称转换为字符串。