У меня есть код в конвейерном формате для преобразования кадра данных, и я застрял с вычислением среднего и SE. Я могу сделать только один из них, потому что функции выполняются последовательно (конечно). Мне нужен способ сделать это одновременно (или, по крайней мере, позволить им обоим работать с одним и тем же промежуточным объектом).
Ситуация
У меня есть 6 различных обработок, с 4 повторностями каждая, и x = количество ошибок в 3 различных жизненных циклах.
Необработанные данные организованы таким образом, что подсчет каждой продолжительности жизни является различной переменной. Я переупорядочиваю это в кадре данных с переменной «count» и переменной «lifestage» для создания графиков с ggplot2
.
Прежде чем переупорядочить переменные, я рассчитываю среднее значение из 4 повторностей для каждой обработки на каждом временном шаге. Теперь мне также нужен SE, но эта часть не работает. Если я только вычисляю SE, это работает. Но поскольку я ПЕРВЫЙ вычисляю среднее значение, информация о четырех повторностях исчезла, и я больше не могу вычислить SE.
Я знаю, что это, конечно, вся идея конвейера, делающего вещи в последовательности. Но есть ли способ заставить две вещи работать одновременно или на одном промежуточном выходе из предыдущего шага? Или это невозможно, и мне нужно использовать совершенно другой подход, чтобы получить как среднее, так и SE?
Код
# example data
Object <- c(rep("A",10),rep("B",10),rep("C",10),
rep("D",10),rep("E",10),rep("F",10))
Repl <- as.factor(c(rep(1,60),rep(2,60),rep(3,60),rep(4,60)))
Days <- rep(c(0,7,14,21,28,35,42,49,56,63),24)
N1.N3 <- sample(1:10,size=240,replace=T)
N4.N5 <- sample(1:10,size=240,replace=T)
Adult <- sample(1:10,size=240,replace=T)
dfBugs <- data.frame(Object,Repl,Days,N1.N3,N4.N5,Adult)
# calculate mean & SE of Macro counts per object and per date
Bugs <- dfBugs %>%
group_by(Object, Days) %>%
summarise(
count = n(),
N1.N3 = mean(N1.N3, na.rm = TRUE),
N4.N5 = mean(N4.N5, na.rm = TRUE),
Adult = mean(Adult, na.rm = TRUE),
N1.SE = sd(N1.N3, na.rm = TRUE)/sqrt(count),
N4.SE = sd(N4.N5, na.rm = TRUE)/sqrt(count),
Ad.SE = sd(Adult, na.rm = TRUE)/sqrt(count)
)
# put counts of different life stages in 1 column
Bugs <- Bugs %>%
gather(Stage,Counts,-Days,-Object,-count)