如何循环引导函数并将结果添加到 table?
How do I loop bootstrapping function and add results to a table?
我有两个 table 数据 - 第一个是一个完整的数据集,其中包含一个因素(栖息地)的重复(密度):
Table1 <- data.frame(
Habitat = sample(c("Woodland", "Grassland"), 10, replace = TRUE),
Density = sample(1:10)
)
第二个是汇总版本,每个栖息地一行包含中值密度。
library(dplyr)
Table2 <-ddply(Table1, "Habitat",summarise, Median = median(Density))
我有下面的代码来获得自举置信区间(使用 table 1 中的数据)……
fun.boot <- function(x, i) {median(x[i])}
Wood.boot <- boot(data = Table1$Density[Table1$Habitat=="Woodland"],statistic = fun.boot, R = 10000)
boot.ci(boot.out = Wood.boot, conf = 0.95, type = c("perc"))
我想将此数据放入 table 2 的相应 (habitat = woodland) 行中,但只能弄清楚如何使用以下方法手动完成(与 upperCI 相同).. ...
Table2$LowerCI <- rep("NA",nrow(Table2))
Table2$LowerCI[Table2$Habitat == "Woodland"] <- 2
我有数百次跑步(很多物种的很多栖息地),所以我想知道是否有一种方法可以自动执行此操作 - 即
- 使用 for 循环或其他方法为每个栖息地生成置信区间
- 然后读成table2??
为结果声明 space(注意:NA
周围不需要引号):
Table2$LowerCI <- rep( NA, nrow(Table2) )
Table2$UpperCI <- rep( NA, nrow(Table2) )
现在您可以遍历栖息地并将结果存储到适当的列中:
for( hab in Table2$Habitat )
{
hab.boot <- boot(data = Table1$Density[Table1$Habitat==hab],statistic = fun.boot, R = 10000)
hab.ci <- boot.ci(boot.out = hab.boot, conf = 0.95, type = c("perc"))
Table2$LowerCI[Table2$Habitat==hab] <- hab.ci$percent[4]
Table2$UpperCI[Table2$Habitat==hab] <- hab.ci$percent[5]
}
我有两个 table 数据 - 第一个是一个完整的数据集,其中包含一个因素(栖息地)的重复(密度):
Table1 <- data.frame(
Habitat = sample(c("Woodland", "Grassland"), 10, replace = TRUE),
Density = sample(1:10)
)
第二个是汇总版本,每个栖息地一行包含中值密度。
library(dplyr)
Table2 <-ddply(Table1, "Habitat",summarise, Median = median(Density))
我有下面的代码来获得自举置信区间(使用 table 1 中的数据)……
fun.boot <- function(x, i) {median(x[i])}
Wood.boot <- boot(data = Table1$Density[Table1$Habitat=="Woodland"],statistic = fun.boot, R = 10000)
boot.ci(boot.out = Wood.boot, conf = 0.95, type = c("perc"))
我想将此数据放入 table 2 的相应 (habitat = woodland) 行中,但只能弄清楚如何使用以下方法手动完成(与 upperCI 相同).. ...
Table2$LowerCI <- rep("NA",nrow(Table2))
Table2$LowerCI[Table2$Habitat == "Woodland"] <- 2
我有数百次跑步(很多物种的很多栖息地),所以我想知道是否有一种方法可以自动执行此操作 - 即
- 使用 for 循环或其他方法为每个栖息地生成置信区间
- 然后读成table2??
为结果声明 space(注意:NA
周围不需要引号):
Table2$LowerCI <- rep( NA, nrow(Table2) )
Table2$UpperCI <- rep( NA, nrow(Table2) )
现在您可以遍历栖息地并将结果存储到适当的列中:
for( hab in Table2$Habitat )
{
hab.boot <- boot(data = Table1$Density[Table1$Habitat==hab],statistic = fun.boot, R = 10000)
hab.ci <- boot.ci(boot.out = hab.boot, conf = 0.95, type = c("perc"))
Table2$LowerCI[Table2$Habitat==hab] <- hab.ci$percent[4]
Table2$UpperCI[Table2$Habitat==hab] <- hab.ci$percent[5]
}