2013-08-28 4 views
0

하나의 가로 채기와 세 개의 계수를 사용하여 회귀 분석을 위해 부트 스트랩 된 신뢰 구간을 돌려주는 루프를 만들려고합니다. 부트 스트래핑 기능 프로그래밍이 잘 작동했습니다.루프가 함수 출력을 출력하지 않습니다.

문제는 boot.ci가 회귀 모형 계수의 이름을 알지 못하기 때문에 index.c와 같은 색인을 사용하여 회귀 함수의 각 객체를 색인 (예 : index = 1)으로 지정해야한다는 것입니다. 내가 객체의 수와 개체의 이름을 spefified 루프 전에

for (i in 2:inputnumberobjects) 
    { 
    cat(paste("BOOT CONFIDENCE INTERVALS FOR COEFFICIENT ", inputnamesobjects[i], ":\n\n", sep="")) 
    boot.ci(bootResults, type = "bca", index=i) ### Result for Coefficients 
    } 

:

그래서 나는 다음을했다.

문제는 어떻게 든 함수 내에서 루프 내의 boot.ci 함수를 무시하는 것입니다.

오브젝트의 이름 inputnamesobjects < 경우 - C 후 ("A", "B", "C", "D")

난 다음 출력 얻을 :

BOOT CONFIDENCE INTERVALS FOR COEFFICIENT a: 

BOOT CONFIDENCE INTERVALS FOR COEFFICIENT b: 

BOOT CONFIDENCE INTERVALS FOR COEFFICIENT c: 

BOOT CONFIDENCE INTERVALS FOR COEFFICIENT d: 

boot.ci(bootResults, type = "bca", index=2) 
: I # 분은 루프를 사용하는 대신 같은 것을 사용하지 않으면 내가하지 않았다 무엇

는 boot.ci

의 결과입니다

모두 정상적으로 작동합니다.

아이디어가 있으십니까?

+1

Welcome to Stackoverflow! 나중에 참조 할 수 있도록 [복제 가능한 예를 만드는 방법] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/)을 참조하십시오. 그러면 복제 할 수 있습니다. 문제. –

답변

1

나는 boot.ci의 기능 도움말에서 예제 데이터를 사용하고 있습니다. 어떤 함수는 print 함수를 사용하여 내부의 다른 함수에서 인쇄 할 때 강제로 처리해야합니다. 당신이 cat의 내부 paste 할 필요가 없습니다

library(boot) 
ratio <- function(d, w) sum(d$x * w)/sum(d$u * w) 
city.boot <- boot(city, ratio, R = 999, stype = "w", sim = "ordinary") 

for (i in letters[1:5]) { 
    cat("This is number:\n", i, "\n") 
    print(boot.ci(city.boot, conf = c(0.90, 0.95),type = c("bca"))) 
} 

주의 사항 :이 형식을 복사합니다. 그러나 일반적으로 cat을 피하는 것이 좋으며, print은 다소 완만 한 기능입니다. cat을 사용하면 나중에 성가신 메시지가 나타날 수 있습니다.

예제를 나중에 제공하십시오! (어떤 패키지를 사용하고 있는지 알려주십시오.)

2

출력을보고 싶다면 print 명령으로 함수를 래핑하십시오. 당신이 어떤을 포함하지 않았기 때문에

for (i in 2:inputnumberobjects) 
    { 
    cat(paste("BOOT CONFIDENCE INTERVALS FOR COEFFICIENT ", inputnamesobjects[i], ":\n\n", sep="")) 
    print(boot.ci(bootResults, type = "bca", index=i)) ### Result for Coefficients 
    } 
+0

좋습니다, 모두에게 감사드립니다. 인쇄 명령이 제대로 작동했습니다. 루프 내에서 print 명령을 명시 적으로 사용해야한다는 것을 알지 못했으나 (여전히 R의 기본 사항을 배우고 있습니다!) – deschen

0

자동 기능은 함수 내부와 마찬가지로 루프 내에서 꺼집니다. 출력을 보려면 명시 적으로 인쇄해야합니다.

희망이 있습니다.

관련 문제