2014-04-27 6 views
-1

1 개의 데이터 세트에서 생성 된 20 개의 고유 선형 모델이 있습니다. 각 하나에 의해 만들어진 :여러 개체에서 간단한 명령을 반복하는 방법은 무엇입니까?

mymodel1 <- lm(y ~ x1 + etc, data=mydata) 

지금 내가 원하는 모두는, 예를 들어 20 개 모델에 명령의 출력 목록을 만드는 것입니다

summary(mymodel[i])$adj 
for i=1,2,...,20 

그것은 아마 분명하지만이 아무것도 발견하지 해요 : 같은.

양수로 변경되는 20 개의 변수 이름을 처리하는 가장 좋은 방법입니까?

for (i in 1:20) print(somefunction(eval(parse(text=paste0("model", i))))$adj) 

답변

1

이 '임'의 클래스에서 상속 작업 공간에있는 항목의 벡터 반환해야합니다. 이것은 그들 모두에서 요약 항목의 목록을 반환합니다

lm.names <- ls()[ sapply(ls(), function(x) 'lm' %in% class(get(x)))] 

sapply(lm.names, function(x) summary(get(x)) 

get (두 번 사용)에 유의하십시오. ls 함수는 객체의 이름을 객체 자체 또는 실제 R 이름으로 반환하지 않고 문자 벡터로 반환합니다. ? summary.lm의 "Value"섹션을주의 깊게보고 싶을 수도 있습니다. 목록이기 때문에 목록을 구성하는 항목이 일부만 필요하기 때문일 수 있습니다.

+0

이것은 분명히 유익하고 앞으로 나에게 유용 할 것이다. 그러나 나는 코멘트 섹션에있는 lukeA의 해결책이 내가 잠시 동안 찾고 있었던 것이라고 생각한다. 나는 for (1:20의 i) print (summary()) 부분을 가지고 있었지만 색인을 참조하는 방법을 이해하지 못했습니다. 고맙습니다. – user3579334

관련 문제