2014-12-03 3 views
0

그룹 정보의 손실 :lmList - 나는 데이터 프레임의 많은 부분 집합에 선형 모델을 할 lmList을 사용하고

res <- lmList(Rds.on.fwd~Length | Wafer, data=sub, na.action=na.omit, pool=F) 

이 잘 작동, 내가 원하는 출력 (최대 출력 도시되지 않음)를 얻을 :

  (Intercept) Length 
    2492 5816.726 1571.260 
    2493 2520.311 1361.317 
    2494 3058.408 1286.516 
    2502 4727.328 1344.728 
    2564 3790.942 1576.223 
    2567 2350.296 1290.396 

"웨이퍼"(위의 첫 번째 열)로 서브 세트했습니다.

head(sub): 

    ERF Wafer Device Row Col Width Length    Date Von.fwd Vth.fwd STS.fwd On.Off.fwd Ion.fwd Ioff.fwd Rds.on.fwd 
1 474 2492 11.06E 11 6 100  5 09/10/2014 12:05 0.596747 3.05655 0.295971 7874420 0.000104 1.32e-11 9626.54 
3 474 2492 11.08E 11 8 100  5 09/10/2014 12:05 0.581131 3.08380 0.299050 7890780 0.000109 1.38e-11 9193.62 
5 474 2492 11.09E 11 9 100  5 09/10/2014 12:05 0.578171 3.06713 0.298509 8299740 0.000107 1.29e-11 9337.86 
7 474 2492 11.10E 11 10 100  5 09/10/2014 12:05 0.565504 2.95532 0.298349 8138320 0.000109 1.34e-11 9173.15 
9 474 2492 11.11E 11 11 100  5 09/10/2014 12:05 0.581289 2.97091 0.297885 8463620 0.000109 1.29e-11 9178.50 
11 474 2492 11.12E 11 12 100  5 09/10/2014 12:05 0.578003 3.05802 0.294260 9326360 0.000112 1.20e-11 8955.51 

것은 내가 원하지 않는 :하지만, 내 데이터 프레임 ("하위") 내에서, 데이터는 또 다른 요인 "ERF"(이 많은 다른 요인하지만 "ERF"만 걱정)에 의해 그룹화 ERF 내 LM에 포함하지만 나중에 즉 내가이 원하는 색상 그래프에 대한 LM 결과와 요인 "ERF"을 유지 하시겠습니까 : 난 그냥에 열을 추가하여 나중에 수동으로이 작업을 수행 할 수 있습니다 알고

ERF Wafer (Intercept) Length 
    474 2492 5816.726  1571.260 
    474 2493 2520.311  1361.317 
    474 2494 3058.408  1286.516 
    475 2502 4727.328  1344.728 
    475 2564 3790.942  1576.223 
    476 2567 2350.296  1290.396 

ERF의 올바른 순서가 포함 된 벡터로 결과를 표시합니다. 그러나, 나는 정기적으로 세트에 데이터를 추가하고 매번 이것을하고 싶지 않다. 확실히 우아한 방법이 있습니까?

감사

편집 - 솔루션에 대한 추가 데이터 :

res <- ddply(sub, c("ERF", "Wafer"), function(x) coefficients(lm(Rds.on.fwd~Length,x))) 

head(res) 

    ERF Wafer (Intercept) Length 
    1 474 2492 5816.726 1571.260 
    2 474 2493 2520.311 1361.317 
    3 474 2494 3058.408 1286.516 
    4 474 2502 4727.328 1344.728 
    5 479 2564 3790.942 1576.223 
    6 479 2567 2350.296 1290.396 

내가 ERF 떨어 뜨린 경우 :

res <- ddply(sub, c("Wafer"), function(x) coefficients(lm(Rds.on.fwd~Length,x))) 

head(res) 

    Wafer (Intercept) Length 
1 2492 5816.726 1571.260 
2 2493 2520.311 1361.317 
3 2494 3058.408 1286.516 
4 2502 4727.328 1344.728 
5 2564 3790.942 1576.223 
6 2567 2350.296 1290.396 

이 이해가 만든합니까? 질문에 잘못 대답 했습니까?

+0

'sub' 정말 당신이 환경을 요구 기능에 사용할 이름이 아닙니다 (데이터)를 인수 목록에 추가합니다. 'sub' 또한 기본 R 함수입니다 –

+0

Richard, 고맙습니다. 앞으로 변합니다. – Pete900

답변

0

아, 내가이 답변에 따라 내 자신의 질문에 대답했습니다 좀 더 연구 :

Regression on subset of data set

열심히 다음에 봐해야합니다. 나는 (어쩌면 내가 또 다른 질문을한다 ... 사람이 lmList를 사용하는 이유 궁금한데?) 대신 lmList의 ddply 사용 :

res1 <- ddply(sub, c("ERF", "Wafer"), function(x) coefficients(lm(Rds.on.fwd~Length,x))) 
+0

나는 이것이 당신이 생각하는대로한다고 생각하지 않습니다. 나는 당신이 * 모델을 맞추는 (즉, 오직 웨이퍼에만 맞추기를 원했을 때)'ERF '로 구별하고 싶지 않다고 생각했습니다. –

+0

네 말이 맞아, 나도 몰라.하지만 어쨌든 내가 원하는 것을 출력하는 것 같아. coefs는 "ERF"를 포함해도 상관 없습니다. ERF를 포함 시키면 그룹 정보가 출력으로 전달됩니다. 내가 올바른지 확인하기 위해 일부 데이터를 게시 할 예정입니다. – Pete900