Этот вопрос является продолжением от earlier post, но с различным набором данных и более подробными сведениями.Работа над подписями
Я пытаюсь загрузить ботстрап пропорциональное появление предметов диеты для 7 особей и рассчитать sd(), используя приведенные ниже данные.
data <- structure(list(IndID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L), .Label = c("P01",
"P02", "P03", "P04", "P05", "P06", "P07"), class = "factor"),
PreyGen = structure(c(1L, 1L, 1L, 1L, 6L, 5L, 4L, 5L, 4L,
4L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 4L, 5L, 5L, 5L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 5L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
5L, 2L, 4L, 3L, 4L, 4L, 4L, 3L, 4L, 4L, 3L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 1L, 4L, 1L, 5L, 4L, 5L, 4L, 4L, 4L, 5L, 4L,
4L), .Label = c("Beaver", "Bobcat", "Coyote", "Deer", "Elk",
"Raccoon"), class = "factor")), .Names = c("IndID", "PreyGen"
), class = "data.frame", row.names = c(NA, -100L))
summary
из которых выглядит следующим образом.
> summary(data)
IndID PreyGen
P01: 6 Beaver : 6
P02:23 Bobcat : 2
P03:12 Coyote : 4
P04:20 Deer :71
P05:21 Elk :16
P06: 7 Raccoon: 1
P07:11
Имеются 7 разных индивидуумов (INDID) одного и того же вида и 6 видов добычи (PreyGen). Каждый человек ел различное количество жертв в разных пропорциях (это основное отличие от более раннего поста).
Моя цель - загрузить пропорциональное появление каждого элемента питания для каждого человека. Цикл ниже генерирует пять диет для каждого человека, которые были отобраны с заменой. Данные хранятся в виде списка лиц, каждый из которых содержит список образцов диет.
РЕДАКТИРОВАТЬ добавлен set.seed()
и полный выход для P01
set.seed(1)
BootIndDiet <- list()
IndTotboot <- list()
for(i in unique(data$IndID)){
for(j in 1:5){
BootIndDiet[[j]] <- prop.table(table(sample(data$PreyGen[data$IndID == i],
length(data$PreyGen[data$IndID == i]),replace = T)))
}
IndTotboot[[i]] <- BootIndDiet
}
бутстрапированный диеты являются специфическими для каждого отдельного (I), в пропорции и размер выборки. Ниже приведены пять загруженных образцов для P01.
> IndTotboot[[1]]
[[1]]
Beaver Bobcat Coyote Deer Elk Raccoon
0.6666667 0.0000000 0.0000000 0.0000000 0.3333333 0.0000000
[[2]]
Beaver Bobcat Coyote Deer Elk Raccoon
0.8333333 0.0000000 0.0000000 0.0000000 0.1666667 0.0000000
[[3]]
Beaver Bobcat Coyote Deer Elk Raccoon
0.3333333 0.0000000 0.0000000 0.0000000 0.1666667 0.5000000
[[4]]
Beaver Bobcat Coyote Deer Elk Raccoon
0.6666667 0.0000000 0.0000000 0.0000000 0.1666667 0.1666667
[[5]]
Beaver Bobcat Coyote Deer Elk Raccoon
0.8333333 0.0000000 0.0000000 0.0000000 0.1666667 0.0000000
Я пытаюсь вычислить sd()
пропорционального вхождения каждого вида копытных для каждого человека. Равномерно для каждого человека (P01 - P07) я хочу sd()
пропорционального появления каждого вида добычи в течение пяти диет.
В то время как моя петля дает правильные результаты, мне интересно, как рассчитать sd()
загруженных диет для каждого вида добычи, когда данные содержатся во вложенных списках.
Я только включал 5 образцов (бутстрэпы) для каждого человека здесь, но надеюсь, что для создания 10000.
EDIT Согласно предложению по @MrFlick
Примера вывод будет выглядеть следующим образом
P01 P02 P03 P04 P05 P06 P07
Beaver A
Bobcat B
Coyote C
Deer D
Elk E
Raccoon F
Где «A» - это sd пропорций бобров, съеденных P01 во всех пяти образцах. Используя выход P01 сверху, «A» = sd (0,66666667, 0,8333333, 0,33333333, 0,66666667, 0,8333333). Двигаясь вниз, «B» будет представлять sd пропорций Bobcat, съеденных P01 во всех пяти образцах, и так далее для каждого вида добычи и индивидуума.
Заранее спасибо.
(-1) Этот вопрос указывает ту же цель, что и связанный с ней вопрос. Если эти ответы не сработают для вас, вы можете предложить щедрость. –
@ Richard Scriven, ответы работали, учитывая отсутствие специфики в моем предыдущем посте. Кроме того, данные, которые я включил в предыдущий пост, не отражают мои реальные данные. Хотя цель одна и та же, данные для работы отличаются. ИМО связанный вопрос может быть удален, но решил, что хозяева позади SO сделают вызов. –
Вы также должны указать желаемый результат. Это также помогло бы использовать 'set.seed()' при использовании функций, которые являются стохастическими, например 'sample', которые являются воспроизводимыми. Когда вы говорите, что хотите «sd пропорциональных вхождений» означает, что вы просто хотите «sd» всех значений для каждого животного для каждого человека? поэтому для P01 вы получите sd для всех пропорций бобров, затем sd для всех пропорций bobcat и т. д.? Какова «форма» желаемого результата? – MrFlick