2012-11-05 2 views
2

이 문제는 직접 해결할 수있는 더 쉬운 문제에서 기인합니다. 그래서 여기에 나의 원래 질문입니다.lm 객체의 특정 줄의 요약을 얻는 방법

내 데이터에는 많은 범주가 있지만 모든 계수를 예측하는 데 관심이 없으며 범주에 차이가 없다는 가정을 테스트하고 싶습니다. 그리고 내 개체에 summary을 호출하면 보고서에 필요하지 않은 대부분의 정보가 생성됩니다.

set.seed(42) 
dat <- data.frame(cat=factor(sample(1:10, 100, replace=T)), y=rnorm(100)) 
l1 <- lm(y~cat-1, data=dat) 
summary(l1) 

summary(l1)으로 전화 할 때 마지막 줄만 추출하는 방법은 무엇입니까?

이 특별한 경우에는 그냥 anova 기능
anova(l1) 

를 사용하고 난 그냥 summary(l1)은 생산과 다른 형식으로, 필요한 경우에만 정보를 가지고 있습니다.

개체에 대한 일종의 요약이 있는데이 부분의 특정 부분을 추출하려면 어떻게합니까? summary(object) 어떻게 할 수 있습니까? 예를 들어 R에 전화 회선 만 summary(l1) 만 인쇄하려면 어떻게합니까?

p.s. 나는 summary(l1)$fstatistic을 알고 있습니다.

답변

2

저는 문자 그대로의 분위기입니다 만, capture.output을 사용하면 평가 된 객체의 문자 표현이 반환됩니다.

tail(l1Out, 1) 
# [1] "" 

그리고 요약 개체의 많은 구성 요소에 대한

있다 :이 출력의 마지막 줄 아니라고,

l1Out <- capture.output(summary(l1)) 
grep("^F-st", l1Out, value = TRUE) 
# [1] "F-statistic: 1.323 on 10 and 90 DF, p-value: 0.2303 " 

참고 그러나 예를 들어, l1 객체를 사용 그래서 같은 @seancarmody 등의 정보를 추출하는 더 나은 방법은, ([여기]

l1$call 
# lm(formula = y ~ cat - 1, data = dat) 
3

str을 사용해보세요. 예를 들어, 당신은

summary(l1)$fstatistic 

# value  numdf  dendf 
#1.323275 10.000000 90.000000 

P 값은 약간의 잔재주이다 시도 할 수 있습니다

str(summary(l1)) 

살펴

$ fstatistic : Named num [1:3] 1.32 10 90 

을 포함하는의 출력을 가지고있다. 추가 정보를 원하시면 this post의 읽기가 있지만, 여기에 솔루션입니다 :

anova(l1)$"Pr(>F)"[1] 
# [1] 0.2303172 

... 꽤 아니지만, 그것을 작동하는 것 같다!

+0

관련 답변을 썼다 http://stackoverflow.com/questions/5587676/pull-out-p-values- 및 -r- 제곱에서 선형 회귀/5587781 # 5587781) – Chase

관련 문제