как рассчитать среднее значение каждой обработки по всем повторениям - PullRequest
1 голос
/ 04 февраля 2020

Я ищу способ расчета средних значений, sd и se для веса для каждой процедуры в двух повторностях.

Treatment    Rep Weight  
Line 1  1   NA  
Line 1  1   NA  
Line 1  1   NA  
Line 1  1   NA  
Line 2  1   26  
Line 2  1   26  
Line 2  1   26  
Line 2  1   27  
Line 1  2   26  
Line 1  2   28  
Line 1  2   26  
Line 1  2   25  
Line 2  2   24  
Line 2  2   26  
Line 2  2   25  
Line 2  2   NA  

Я пробовал пакет dplyr, но он дает среднее значение обработки для каждой репликации, а не для обеих репликаций вместе взятых.

Data1 %>% group_by(Treatment, Rep) %>% summarise_at(vars(-group_cols()), list(mean = ~mean(Weight, na.rm = TRUE), 
       sd = ~sd(Weight, na.rm = TRUE), se= ~sd(Weight, na.rm = TRUE)/sqrt(n())))

Спасибо за помощь!

1 Ответ

2 голосов
/ 04 февраля 2020

На основании кода ОП

df1 %>%
   group_by(Treatment, Rep) %>% 
   summarise_at(vars(-group_cols()), list(mean = ~mean(Weight, na.rm = TRUE), 
      sd = ~sd(Weight, na.rm = TRUE),
      se= ~sd(Weight, na.rm = TRUE)/sqrt(n()))) %>% 
   summarise_at(vars(mean:se), mean, na.rm = TRUE)

данные

df1 <- structure(list(Treatment = c("Line 1", "Line 1", "Line 1", "Line 1", 
"Line 2", "Line 2", "Line 2", "Line 2", "Line 1", "Line 1", "Line 1", 
"Line 1", "Line 2", "Line 2", "Line 2", "Line 2"), Rep = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), 
    Weight = c(NA, NA, NA, NA, 26L, 26L, 26L, 27L, 26L, 28L, 
    26L, 25L, 24L, 26L, 25L, NA)), class = "data.frame", row.names = c(NA, 
-16L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...