2014-04-15 3 views
0

고정 효과 회귀를 코딩하려고하는데 많은 더미 변수가 있습니다. 기본적으로, 내 방정식의 RHS에 184 개의 변수가 있습니다. 이 글을 쓰는 대신 각 열 (각 열의 이름을 숫자로 지칭)을 통과하는 루프를 만들려고합니다.고정 효과 회귀의 열 이름을 반복합니다.

이것은 내가 지금까지 가지고 있지만 붙여 넣기가 작동하지 않는 코드입니다. 붙여 넣기를 사용하여베이스에서 완전히 벗어 났을 수도 있지만, 어떻게 접근해야할지 모르겠습니다. 그러나 오류가 발생합니다 (아래 참조). 열 이름 일례로서

FE.model <- plm(avg.kw ~ 0 + (for (i in 41:87) { 
        paste("hour.dummy",i,sep="") + paste("dummy.CDH",i,sep="") 
        + paste("dummy.MA",i,sep="") + paste("DR.variable",i,sep="") 
       }), 
       data = data.reg, 
       index=c('Site.ID','date.hour'), 
       model='within', 
       effect='individual') 
summary(FE.model) 

난 (41 개)의 이름 등 "hour.dummy41" "dummy.CDH41"이어야 할 때 = I

다음 오류 얻고

:

Error in paste("hour.dummy", i, sep = "") + paste("dummy.CDH", i, sep = "") : non-numeric argument to binary operator 

여기서는 적절하지 않은 붙여 넣기 기능인지 또는 루프인지 여부를 잘 모르겠습니다. R에서 열 이름을 쉽게 반복 할 수있는 방법을 찾지 못하는 것 같습니다.

어떤 도움을 많이 받으실 수 있습니다!

#create a data.frame where rows are the parts of the variable names, then collapse it 
rhs <- do.call(paste, c(as.list(expand.grid(c("hour.dummy","dummy.CDH"), 41:87)), sep=".", collapse=" + ")) 
fml <- as.formula(sprintf ("avg.kw ~ %s"), rhs)) 
FE.model <-pml(flm, ... 

I 만 두에 넣어했습니다 순간에 너무 많은 조건을 모델을 피팅에 대한 우려를 무시

+0

이 지표 변수의 출처는 어디입니까? 나는 보통의 관용구가'factor'를 사용한다고 생각합니다. 그래서'y ~ x1 + x2 + factor (hour)'와 같은데, 여기서'hour'는 24 개의 지시자 변수를 생성하기보다는 시간입니다. –

답변

1

, 당신은 아마 문자열을 생성 한 다음 수식으로 캐스팅 할 '더미는 두 번째 라인에 있지만, 당신은 아이디어를 얻어야합니다.

+0

그게 효과가! 예, 많은 용어가 있지만 이러한 방식으로이 유형의 분석을위한 모델링을 수행합니다. 정말 고마워! – Luna

+0

Gavin - 당신이 만든 rhs에 대해 - 어떻게 다른 더미를 추가하겠습니까? 41:87 대신 1 : 24입니까? – Luna

+0

'... as.list (rbind (expand.grid (vars1, 41:87), expand.grid (vars2, 1:24)) ... ' –