2013-08-28 121 views
0

我正在嘗試創建一個循環,該循環使我回到使用一個截距和三個係數進行迴歸分析的引導置信區間。對引導功能進行編程運行良好。循環不會打印函數輸出

問題是,我必須在函數boot.ci中使用索引(如index = 1)來回歸每個迴歸對象,因爲boot.ci不知道我的迴歸模型係數的名稱。

所以我做了以下內容:

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 
    } 

我spefified對象的數量和對象的名稱循環之前。

問題是,該函數似乎忽略循環內的boot.ci函數。

例如,如果對象的名稱是 inputnamesobjects < - C( 「一」, 「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

的結果。如果我#m的不使用循環,而使用類似:

boot.ci(bootResults, type = "bca", index=2) 

一切工作正常。

任何想法?

+1

歡迎來到Stackoverflow!爲了將來的參考,請參閱[如何製作可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/),以便我們可以複製您的問題。 –

回答

1

我使用的功能幫助中的示例數據爲boot.ci,因爲您沒有包含任何內容。有些功能需要強制打印內部其他功能,通常使用功能print。複製此格式:

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"))) 
} 

請注意,您不需要pastecat內。但總的來說,避免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

自動打印在循環內關閉,就像在函數內一樣。如果你想看到輸出,你需要明確地打印一些東西。

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 
} 

希望有幫助。