2017-06-19 8 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 $ 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

ちょうど

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

として、あなたの関数を記述し、

myfunction(mydata, "Rain") 

すべてでそれを呼び出すと、あなただけの

+0

おかげで、標準的な評価に固執するならばはるかに簡単です。以前のデータセット$ depvarを試しましたが、これはうまくいきませんでした。あなたのソリューションは完璧に動作します。 – Aarn

関連する問題