2016-10-29 32 views
-1

私はR StudioでRを学習しており、簡単な予測モデリングに取り組んでいます。R - エラー:「無効な引数: 'sim'& 'obs'の長さが同じではありません!」

私は、次のエラーが表示されます。私はこのコード行を実行するとき

Invalid argument: 'sim' & 'obs' doesn't have the same length !

rmse(testingbabydata$weight, predictedWeight) 

をセットlinked hereは1000行が含まれており、地球環境のペインには、その私のテストデータを示して、私のトレーニングデータは、それぞれ「2変数の500 obs。」を有する。

ライブラリhydroGOFも正しく読み込まれているはずです。

私は数週間で妊娠の長さに基づいて、赤ちゃんの体重を予測しようこここれは私のコードスニペットです:

ncbabydata=read.csv("nc.csv",header=TRUE,stringsAsFactors = FALSE`) 
trainingbabydata=ncbabydata[seq(1,nrow(ncbabydata),2),c("weeks","weight")] 
testingbabydata=ncbabydata[seq(2,nrow(ncbabydata),2),c("weeks","weight")] 
model = train(weight ~.,trainingbabydata,method="rf") 
predictedWeight=predict(model,testingbabydata) 
rmse(testingbabydata$weight, predictedWeight) 

はお時間をいただき、ありがとうございます! (私が最初にこのエラーメッセージをGoogleにしようが、私は比較的容易に理解できる何の適切な供給源を発見しませんでした。)

答えて

1

あなたの二つのベクトルが同じ長さ、実際には、ありません。

> length(predictedWeight) 
[1] 498 
> length(testingbabydata$weight) 
[1] 500 

理由これはあなたの機能のいくつかはNAであり、あなたの予測は単にこれらの行を省略しているということです。モデルで失われたデータを処理する複雑なトピックですが、それは500のうち2行のみなので、あなたは今のためにそれらを削除し、あなたの学習を続けることができます。

testingbabydata<-testingbabydata[complete.cases(testingbabydata),] 

、あなたはその後、(そのことができますあなたのRMSEを計算することができます

> sqrt(mean((testingbabydata$weight-predictedWeight)^2)) 
[1] 1.025823 

、あなたは常に平均値予測するモデルと比較することができます::も)ヘルパーなしで、直接行う

> sqrt(mean((testingbabydata$weight-mean(testingbabydata$weight))^2)) 
[1] 1.460638 
関連する問題