2016-06-22 5 views
0

다른 행 수를 반환하는 함수의 결과, 예를 들어 Lag()을 선형 모델 내에 평가할 수 있습니까?선형 모델 내에서 NA 행을 가진 함수를 계산하십시오.

이 오류는 Lag이 첫 번째 값에 대해 NA를 반환하기 때문에 행 수가 올바르지 않기 때문일 수 있습니다. 데이터 세트의 나머지가있는 동안 Lag(csv$Shame) 2 개 행이 3

> Lag(csv$Shame) 
    Lag.1 
[1,] NA 
[2,]  4 
[3,]  5 

예 :

csv<-data.frame(SelfEsteem=c(1,2,3),Shame=c(4,5,6),participant_number=c(1,1,1)) 
csv$laggedShame<-Lag(csv$Shame) 

works<-lme(SelfEsteem~1,random=~laggedShame|participant_number,na.action=na.omit,data=csv) 
fails<-lme(SelfEsteem~1,random=~Lag(Shame)|participant_number,na.action=na.omit,data=csv) 

Error in lme.formula(SelfEsteem ~ 1, random = ~Lag(Shame) | participant_number, : 
    nlminb problem, convergence error code = 1 
    message = false convergence (8) 
In addition: Warning message: 
In matrix(unlist(value), nrow = nrow(data), dimnames = list(row.names(data), : 
    data length [4] is not a sub-multiple or multiple of the number of rows [3] 

이 질문에 공유 비슷한과 제목 : this post하지만 오류가

답변

0

내 생각은 완전히 다릅니다 왜냐하면 당신은 실제로 csv data.frame에서 NA를 제거하지 않기 때문입니다. 함수 자체에 works에서 data.frame을 작성한 다음 works과 유사한 코드를 사용하면됩니다. 나는 이것이 당신이 원하는 것이라고 생각합니다 :

library(data.table) 
fails<-lme(SelfEsteem~1,random=~LShame|participant_number,na.action=na.omit,data=cbind(csv,LShame=shift(csv$Shame,1L,type="lag"))) 
관련 문제