我正在尝试制作一个循环,它让我回到自举置信区间,用于使用一个截距和三个系数进行回归分析。编程自举功能运行良好。
问题在于我必须在函数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
}
在循环之前,我指定了对象的数量和对象的名称。
问题是,该函数似乎忽略了循环中的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的结果
如果我没有使用循环而是使用类似的东西:
boot.ci(bootResults, type = "bca", index=2)
一切正常。
有什么想法吗?
答案 0 :(得分: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
}
答案 1 :(得分: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")))
}
请注意,您不需要paste
内的cat
。但总的来说,避免使用cat
是件好事,因为print
是一个稍微温和的功能。使用cat
可能会导致以后难以处理的恼人信息。
将来,请提供可重现的示例! (并告诉我们您正在使用哪些套餐!)
答案 2 :(得分: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
}
希望有所帮助。