2017-02-20 9 views
1

私はirisデータセットを利用しようとしていましたが、e1071ライブラリからsvmを利用しましたが、作成しようとすると、 tune作品:ライブラリ(e1071)、チューン可変長が異なる

library(e1071) 

data <- data.frame(iris$Sepal.Width,iris$Petal.Length,iris$Species) 
svm_tr <- data[sample(nrow(datasvm), 100), ] #sample 100 random rows 

tuned <- tune(svm, svm_tr$iris.Species~., 
       data = svm_tr[1:2], 
       kernel = "linear", 
       ranges = list(cost=c(.001,.01,.1,1,10,100))) 

私はsvm_tr[1:2]で各列の長さをチェックして、彼らは同じ長さです。私は関数がデータフレームを直接取っていないことを知っていますが、多分何かが欠けていますか?

私はそれがで動作するように取得することができ
+0

2行目は変数 'data'を作成しますが、3行目は' datasvm'を使用しています。 – G5W

+0

が修復されました - はい。 – jmb277

+4

私は 'tune(svm、iris.Species〜、data = svm_tr [1:3]、kernel =" linear "、ranges = list(cost = c(.001、.01、.1) 、1,10,100))) ' - もしそれが式インタフェースであれば、あなたは' $ 'を使って変数を参照すべきではありません。 'iris.Species'カラムが見つかるように' 1:2'の代わりに 'data = svm_tr [1:3]'を作成しました。 – thelatemail

答えて

2

:それはあなたが必要なすべての変数がdata=で指定されたオブジェクトから供給されているよう$を使用して、変数を参照すべきではない式インタフェースはなら

tune(svm, iris.Species ~ ., data = svm_tr[1:3], 
    kernel = "linear", ranges = list(cost=c(.001,.01,.1,1,10,100))) 

引数。また、iris.Species列が含まれるように1:2の代わりにdata=svm_tr[1:3]を作成しました。

+0

これでした!ありがとうございました! – jmb277

関連する問題