2017-06-19 40 views
0

我遇到了一些看起來相當簡單的東西。從函數中的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 $雨是現有的可變我想插入,而不是?????

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

只寫你的功能

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

myfunction(mydata, "Rain") 

一切都叫它是,如果你只是堅持標準評價

+0

感謝容易得多。我嘗試了早期的數據集$ depvar,這是行不通的。您的解決方案完美運作 – Aarn