我有以下矩阵(让我们称之为df),由于加权分布很大,我想为每个列创建自举均值和95%置信区间。我希望将均值和CI作为新行添加到矩阵的底部。这是数据的一小部分,真实数据有> 600行,这将使自举更加有效。
row.names V183 V184 V185 V186 V187 V188 V189 V190 V191 V192 V193 V194 V195 V196 V197 V198 V199 V200 V201 V202 V203 V204 V205
1 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 NA NA
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0.022 0 NA NA NA NA NA NA
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308 0.07692308
5 0 0 0 0 0.066 0.066 0.066 0.066 0.066 0.066 0.066 0.066 0.066 0.066 0 0 0 0 0 0 0 0 0
6 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0 0 0 0
7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0.07142857 0 0 0 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NA NA NA NA NA NA
10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11 NA NA NA NA NA NA NA NA NA NA NA NA 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806 0.03225806
12 0 0 0 0 0 0 0 0 0 0 0 0 0 NA NA NA NA NA NA NA NA NA NA
13 0 0 0 0 0 0 0 0 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
14 0 0 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0 0 0 0 0 0
我试过这个:
boot.mean <- function(df,i){boot.mean <- mean(df[i])}
df["BootMean" ,] <- boot(df, boot.mean, R = 2000)
但是它说&#34;选择了未定义的列
所以我尝试了这个:
boot.mean <- function(df[1:23],i){boot.mean <- mean(df[i])}
df["BootMean" ,] <- boot(df, boot.mean, R = 2000)
但它说有一个&#34; [&#34;它并不喜欢。
我最近试过这个:
n<-length(df)
B<-1000
boot.mean <- function(df,i){boot.mean <- mean(df[,i],na.rm = TRUE)}
df["BootMean" ,] <-for (i in 1:n) {
boot(df[1:14,i],boot.mean,R=B)
}
但是我在评估论证时遇到了错误&#39; x&#39;选择功能方法&#39;表示&#39;:df [,i]中的错误:维数不正确&#34;
我需要使用apply函数还是什么?请帮助,大脑正在为这个微不足道的问题而受伤!
*****我已经取得了一些进展,但现在还没有。
我已经能够通过对其进行子集化获得单行的启动均值,但是我无法将na.rm = T函数合并到公式中,因此我还必须手动删除它们。任何人都可以建议添加na.rm fn的方法吗?
df<-subset(dfboot,F_BS_sub[1:323, 1]>=0)
dfa<-df[,1]
dfb<-subset(dfa,V183>=0)
boot.mean <- function(dfb, d) {
E=dfb[d,]
return(mean(E))}
b = boot(dfb, boot.mean, R=1000)
b