R 从矩阵创建引导平均值和CI

R 从矩阵创建引导平均值和CI,r,matrix,mean,statistics-bootstrap,R,Matrix,Mean,Statistics Bootstrap,我有下面的矩阵(我们称之为df),我想为每个列创建自举平均值和95%的置信区间,因为权重为0的分布。我希望将平均值和CI作为新行添加到矩阵底部。这是数据的一小部分,真正的数据有>600行,这将使引导更加有效 row.names V183 V184 V185 V186 V187 V188 V189 V190 V191 V192 V193 V194 V195 V196 V197 V198 V199

我有下面的矩阵(我们称之为df),我想为每个列创建自举平均值和95%的置信区间,因为权重为0的分布。我希望将平均值和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)
 boot.mean <- function(df[1:23],i){boot.mean <- mean(df[i])}
 df["BootMean" ,] <- boot(df, boot.mean, R = 2000)
 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)
 }

boot.表示您没有正确选择矩阵中的列。它应该是
平均值(df[,i])
。另外,由于您有NA值,您可能希望
mean(df[,i],NA.rm=T)
我认为引导不一定能纠正数据大小的限制。对于12°的样本大小,要求95%的ile意味着什么?嗨,对不起,这是一个来自>600行数据集的样本数据集。我在第一段提到了这一点,但我本应该更清楚。我正在尝试应用MrFlick的建议,因为他是完全正确的,但我仍然无法使其发挥作用。我现在尝试了多种方法,包括for循环和MrFlicks建议,但我仍然选择了“undefined columns selected”(未定义的列)。关于这方面的任何建议??我已经取得了一些进展,如上所示,但我不确定如何在新公式中包含na.rm函数。然后,我将尝试为新公式创建一个for循环,并将其应用于矩阵。请在原始帖子中查找******,了解我最新突破的代码
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