R 用于引导样本并生成标准错误(SE)的函数
我有100个概率与我在这里创建和显示的四个独特个体(AAA:DDD)相关R 用于引导样本并生成标准错误(SE)的函数,r,for-loop,statistics-bootstrap,R,For Loop,Statistics Bootstrap,我有100个概率与我在这里创建和显示的四个独特个体(AAA:DDD)相关 IndID <- as.factor(rep(c("AAA", "BBB", "CCC", "DDD"),25)) Prob <- runif(length(IndID),0,1) Data <- data.frame(IndID, Prob) Data <- Data[order(Data$IndID),] > head(Data) IndID Prob 1 AAA
IndID <- as.factor(rep(c("AAA", "BBB", "CCC", "DDD"),25))
Prob <- runif(length(IndID),0,1)
Data <- data.frame(IndID, Prob)
Data <- Data[order(Data$IndID),]
> head(Data)
IndID Prob
1 AAA 0.5860417
5 AAA 0.1824266
9 AAA 0.3301014
13 AAA 0.5048122
17 AAA 0.3717195
21 AAA 0.9090825
> summary(Data)
IndID Prob
AAA:25 Min. :0.01341
BBB:25 1st Qu.:0.19743
CCC:25 Median :0.48315
DDD:25 Mean :0.50475
3rd Qu.:0.81789
Max. :0.99805
我的目标是:对于每个个体(AAA:DDD),我希望引导Prob,使用0.50作为截止值对它们进行离散化,并将得到的0和1相加。我想对每个AAA:DDD执行R=10(例如,仅低,但将使用实际数据重复R=10000)次,然后提取boot()
对象的标准错误
建议如何改善我的循环以上将不胜感激。特别是如何在循环中正确地将“statistic”参数合并到boot()
提前感谢。对于
boot
函数,必须包含索引参数idx
BiSum <- function(x, idx){
IndBi <- ifelse(x[idx] >= 0.50, 1,0)
SumIndBi <- sum(IndBi)
}
BiSum对于boot
函数,必须包含索引参数idx
BiSum <- function(x, idx){
IndBi <- ifelse(x[idx] >= 0.50, 1,0)
SumIndBi <- sum(IndBi)
}
BiSum非常感谢@TWL。添加idx非常有效。从这里包含的SE输出中可以看出,除了IndID之外,还有四个额外的0.00000。你有没有想过它们是从哪里来的?再次感谢<代码>>SE AAA BBB 0.0000000.0000000.0000000.0000000.0000002.436967 2.312056 CCC DDD EEE
2.487526 2.381884 2.497726以您的示例为例,在for循环中,您正在索引因子级别AAA-DDD,而数字向量SE没有指定名称。该函数不知道将值放在何处,只是将输出与SE向量连接起来。在再次运行for循环names(SE)Perfect之前,必须为向量指定级别名称!谢谢。非常感谢@TWL。添加idx非常有效。从这里包含的SE输出中可以看出,除了IndID之外,还有四个额外的0.00000。你有没有想过它们是从哪里来的?再次感谢<代码>>SE AAA BBB 0.0000000.0000000.0000000.0000000.0000002.436967 2.312056 CCC DDD EEE
2.487526 2.381884 2.497726以您的示例为例,在for循环中,您正在索引因子级别AAA-DDD,而数字向量SE没有指定名称。该函数不知道将值放在何处,只是将输出与SE向量连接起来。在再次运行for循环names(SE)Perfect之前,必须为向量指定级别名称!谢谢
Error in statistic(data, original, ...) : unused argument (original).
BiSum <- function(x, idx){
IndBi <- ifelse(x[idx] >= 0.50, 1,0)
SumIndBi <- sum(IndBi)
}