Потеря организации R-фактора при обобщении данных (dplyr)

#r #tidyverse #dplyr #rstatix

Вопрос:

Я пытаюсь суммировать числовую переменную отклика (надземная биомасса [AGB]) по нескольким категориальным факторам, а также по дате в рамках более крупного проекта. Дата читается как символ и оформляется как 4/10/2020, 4/8/2020, 4/9/2020. Дополнительно есть колонна, Стреляйте.Сюжет, который имеет порядковый номер 1-11: 1, 10, 11, 2… и так далее, поскольку он читается как символьная строка (что по большей части нормально из-за странного порядка). Я сопоставил факторы с тем, что я хочу, но когда я суммирую данные, используя либо get_summary_stats() из rstatix() упаковка или использование summarize() , организация уровней потеряна.

Вот что я попробовал:

 df %>% 
  mutate(Date.Coll, factor(Date.Coll, levels = c("4/8/2020","4/9/2020","4/10/2020")), 
         Shoot.Plot, factor(Shoot.Plot, levels = 
                              c("1","2","3","4","5","6","7","8","9","10","11"))) %>%
  group_by(Date.Coll, Site, Eelgrass, Oyster, Shoot.Plot) %>%
  filter(is.na(BGB),
         Date.Coll=="4/8/2020" | Date.Coll=="4/9/2020" | Date.Coll=="4/10/2020") %>% 
  select(AGB) %>% 
  get_summary_stats(type="mean_se")
 

Когда я проверяю фрейм данных прямо перед get_summary_stats() строкой, данные организованы так, как я указал в функции mutate. Только после подведения итогов оба они вылетают в окно.

Есть какие-нибудь предложения? Спасибо!

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Когда вы ставите select(AGB) , вы удаляете все остальные столбцы в своем фрейме данных. Если вы хотите указать, какую переменную обобщать, введите ее get_summary_stats . Без данных я не могу проверить, работает ли это. Попробуй это:

 df %>% 
  mutate(Date.Coll, factor(Date.Coll, levels = c("4/8/2020","4/9/2020","4/10/2020")), 
         Shoot.Plot, factor(Shoot.Plot, levels = c("1","2","3","4","5","6","7","8","9","10","11"))) %>%
  group_by(Date.Coll, Site, Eelgrass, Oyster, Shoot.Plot) %>%
  filter(is.na(BGB),
         Date.Coll=="4/8/2020" | Date.Coll=="4/9/2020" | Date.Coll=="4/10/2020") %>% 
  get_summary_stats(AGB, type="mean_se")
 

Комментарии:

1. Я попробовал это вместе с включением всех факторов group_by() функции в select() функцию, и я получил тот же результат. В итоге я решил обойти это, объединив это с другим df (что было конечной целью) по перечисленным факторам, по сути, сделав порядок строк неважным, но все же. Я хотел бы знать, почему это происходит.

2. Я был бы рад попробовать, если бы вы могли опубликовать некоторые данные для тестирования. В противном случае трудно диагностировать, что происходит.