Я пытаюсь загрузчику пропорционального возникновения диеты элементов для 7 людей и вычислить sd()
Работы по подспискам с применить() функции
Допустит, есть 9 пунктов добычи в меню.
Diet <- c("Beaver","Bird", "Bobcat","Coyote", "Deer", "Elk",
"Porcupine", "Raccoon", "SmMamm")
И что эти пункты добычи поедают 7 различных особей одного вида
Inds <- c("P01", "P02", "P03", "P04", "P05", "P06", "P07")
Моя цель бутстраповская пропорциональная возникновение каждого элемента диеты для каждого человека.
Цикл ниже генерирует пять диет для каждого человека (каждая диета, содержащая N = 20 кормлений), которые были взяты с заменой. Данные хранятся в виде списка лиц, каждый из которых содержит список образцов диет.
BootIndDiet <- list()
IndTotboot <- list()
for(i in Inds){
for(j in 1:5){
BootIndDiet[[j]] <- prop.table(table(sample(Diet, 20 ,replace = T)))
}
IndTotboot[[i]] <- BootIndDiet
}
Ниже я включил первые две диеты индивидуального P07 в качестве примера цикла приводит к
$P07
$P07[[1]]
Beaver Bird Bobcat Deer Elk
0.05 0.15 0.20 0.10 0.15
Porcupine Raccoon SmMamm
0.15 0.15 0.05
$P07[[2]]
Beaver Bird Bobcat Coyote Deer
0.15 0.10 0.20 0.05 0.05
Elk Porcupine Raccoon SmMamm
0.05 0.20 0.10 0.10
Затем я хочу, чтобы вычислить SD() пропорционального каждого вида для каждого человека , Равномерно для каждого человека (P01 - P07) я хочу sd()
пропорционального появления каждого вида добычи в течение пяти диет.
В то время как мой цикл выше работает, я подозреваю, что это лучший способ (возможно, используя функцию загрузки()), что позволяет избежать списков ...
В то время как я только включал 5 образцов (бутстрэпы) для каждого человека здесь , Я надеюсь создать 10000.
Предложения по другой стратегии или как подать заявку sd()
через под-списки.
Если проблемы с памятью не возникает вы можете хранить ваши данные в длинном формате «data.frame» с колоннами -say- [Ind, No_diet, добыча, проп], а затем вы можете просто позвонить 'агрегатный (проп ~ Ind + prey, mydataframe, sd) '. –