r - 在 R 中独立引导​​数据框列

标签 r

我有一个data.frame,其中每列代表不同的个体,每行代表所吃的不同食物。

我的目标是通过引导对每一列重新采样,然后使用定义的函数计算每个个体(数据列)的指标分数和 C.I.。

我已经在单个向量上成功完成了此操作,但无法弄清楚如何将引导和度量函数应用于数据框中的各个列。下面是我必须将其应用于单个向量的代码:

data.1 <- c(10, 50, 200, 54, 6) ## example vector
## create function
metric.function <- function(x){
  p <- x/sum(x)
dap <- 1/sum(p^2)
return(dap)
}
vect <- c() ## empty vector for bootstrap data

for (i in 1:1000){
data.2 <- sample(data.1, replace = TRUE)  ##bootstrap sample ##
vect[i] <- metric.function (data.2)     ## apply metric.function ##
}

summary(vect) ## summary 
quantile(vect, probs = c(0.025, 0.975)) ## C.I.

这对于单个向量来说效果很好,但我想将其独立应用于数据框中的多个列,例如在下面的 example.df 中,我想将其应用于 x1 :x10 独立产生 10 个指标分数和 10 个 C.I.s

example.df<-data.frame(replicate(10,sample(0:50,10,rep=TRUE)))

我尝试将 vector 项更改为 data.frame 并使用 applydply但无法弄清楚,任何人都可以建议如何去做或为我指出有用的指南/网站等方向吗?

最佳答案

这是使用replicatesapply的绝佳机会。

replicate(1000, sapply(example.df, function(x) 
  metric.function(sample(x, replace = TRUE))))

sapply 将按列操作(假设 data.frame 在某种意义上是列的列表);一旦我们在 sapply 中隔离了一列,我们只需对其重新采样并应用我们的指标。

关于r - 在 R 中独立引导​​数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32940822/

相关文章:

r - data.table:是否可以合并 .SD 并按组返回一个新的 'sub data table'?

r - 在 R 中,绘制连续/序列事件

r - caret 包中的 train() 返回有关名称和 gsub 的错误

r - 具有重复标签的ggplot轴自定义顺序

r - 在 R 中自定义 infoWindow/tooltip --> plotly

r - 在 R 列中拆分字符串并获取拆分字符串的最大值

r - 按组合并行,每行具有不同的 NA

html - 使用 HTML 或 CSS 居中对齐 Shiny box header

r - 为什么 unlist() 将日期类型转换为数字?

r - 增加 ggplot 标题中的下划线大小