2016-10-29 1 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) 

이 시간 내 주셔서 감사합니다 내가 주 임신의 길이에 따라 아기의 무게를 예측하는 것을 특징으로

이 내 코드입니다! (내가 처음이 오류 메시지가 구글을 시도했지만 나는 비교적 쉽게 이해할 수있는 더 적절한 소스를 찾을 수 없습니다.)

답변

1

당신의 두 벡터이며, 사실이 아닌 같은 길이 :

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

이유에 대한 이것은 귀하의 기능 중 일부가 NA이고 예상치가 단순히이 행을 생략한다는 것입니다. 모델에서 누락 된 데이터를 처리하는 것은 복잡한 주제이지만, 500에서 두 행이기 때문에, 당신은 지금 그들을 제거하고 학습을 계속할 수 :

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