У меня есть набор данных (baseEV), который выглядит как эти три столбца (но с большим количеством строк):
Ntree Ntrans Xi
1 1 0.1
2 1 0.1
3 1 0.1
4 1 7
5 1 7
1 3 0.1
2 3 0.1
3 3 9
4 3 6
5 3 3
1 4 0.1
2 4 11
3 4 9
4 4 6
5 4 3
1 5 0.1
2 5 10
3 5 4
4 5 2
5 5 4
описание базы данных Мне нужно проверить, как меняется статистика, если яПовторно сэмплируйте Xi, изменив Ntree, рассчитав статистику, а затем оценив статистику с помощью начальной загрузки:
D = (35 * Ntree-1) / SUM ([Xi])
Однако мне также нужночто когда я изменяю Ntree, чтобы увидеть, как влияет D, он не должен отбрасывать меньшие значения Ntree.Например, когда я вычисляю для Ntree = 4, мне нужен загрузчик, чтобы использовать строки для Ntree = 1,2 и 3 вместе с Ntree = 4, без использования данных для Ntree = 5.Но когда я применяю этот код:
library(boot)
library(dplyr)
library(tidyr)
library(broom)
AvgDEns <- function(data, indices) {
data <- data[indices,]
mean((35*(data$Ntree))-1)/sum((data$Xi))
}
bootresults2 <- baseEV %>%
group_by(Ntree) %>%
do(tidy(boot(data = ., statistic = AvgDEns , R = 200)))
bootresults2
Таким образом, результирующий загрузчик дает результаты только с учетом того, когда Ntree = 1, или Ntree = 2, или 3 и т. Д., Самостоятельно, но мне нужноПроцедура для сохранения строк с меньшим (Ntree) значением и вычисления функции с ними.Однако понятия не имею, как это сделать.Будем весьма благодарны за любые сведения о предлагаемых процедурах!