2017-11-10 28 views
1

을 가지고 * 교체했다 다음 메시지가 나타납니다 :오류 * TMP는 X 데이터 내가 R.에서 초보자 해요 여기에 내가 잔여 임기를 저장하기 위해 노력하고있어 매우 간단한 코드가 Y

Error in `$<-.data.frame`(`*tmp*`, cldearesid, value = c(-0.18608488908881, : 
    replacement has 366 rows, data has 367 

이 오류를 검색했지만이를 해결할 수있는 항목을 찾을 수 없습니다. 또한, 나는 엄마의 EA에 대해 똑같은 코드를 만들었고 오류없이 오류없이 잔차를 저장했습니다. 누군가 제가이 문제를 해결하도록 도울 수 있다면 고맙겠습니다.

답변

1

귀하의 데이터에 NA s의 느낌이 있습니다. 이 예를보세요 :

#mtcars data set 
test <- mtcars 
#adding just one NA in the cyl column 
test[2, 2] <- NA 

#running linear model and adding the residuals to the data.frame 
test$residuals <- resid(lm(mpg ~ cyl, test)) 
Error in `$<-.data.frame`(`*tmp*`, "residuals", value = c(0.382245430809409, : 
    replacement has 31 rows, data has 32 

이 결과는 사용자에게 유사한 오류가 발생 함을 알 수 있습니다. 검증으로

:

length(resid(lm(mpg ~ cyl, test))) 
#31 
nrow(test) 
#32 

lm는 회귀 분석을 실행하기 전에 데이터 세트에 na.omit를 실행하기 때문에이 문제가 발생, 그래서 당신은 NA 어떤 행이있을 경우이 적은 결과의 결과로 제거 얻을 것이다. 당신이 당신의 dat 데이터 세트에 na.omit를 실행하면

(즉, 코드의 맨 처음에 dat <- na.omit(dat) 다음 코드는 작동합니다.

+0

그래서 정말 감사합니다! –

+0

행복하기 위해 !! 당신은 점을 마우스 오른쪽 버튼으로했다. 도움이된다면 받아 들여도됩니다. – LyzandeR

+0

사실, 방금 na.omit을 실행하면 내 변수에 대한 0 관측과 같이 내 데이터 집합이 지워지는 것을 발견했습니다 ... –