在函数

时间:2017-06-19 13:39:12

标签: r

我遇到了一些相当容易的事情。从函数中的2个参数,我想形成一个现有的变量名。然后,我想在函数中使用具有此名称的现有变量(来自包的插入符号)。我最后一部分做了一些麻烦。

myfunction <- function(dataset,depvar)
{
First=substitute(dataset) #mydata
Second=substitute(depvar) #Rain
Total=paste(First,Second,sep="$") #"mydata$Rain"
Total=noquote(Total) #mydata$Rain
TrainData <- createDataPartition(y = ????????, p=0.75, list=FALSE)
}

mydata $ Rain是我要插入的现有变量而不是?????

createDataPartition(y = Total, p=0.75, list=FALSE) #doesn't work
createDataPartition(y = get(Total), p=0.75, list=FALSE) #doesn't work as it indicates object 'mydata$Rain' not found.

虽然,mydata $ Rain是一个现有的变量。 任何提示?

1 个答案:

答案 0 :(得分:1)

只需将您的功能写为

即可
myfunction <- function(dataset,depvar) {
    TrainData <- createDataPartition(y = dataset[[depvar]], p=0.75, list=FALSE)
}

并用

调用它
myfunction(mydata, "Rain")

如果您坚持标准评估

,一切都会轻松得多