Процентное изменение численности на род и лечение - PullRequest
0 голосов
/ 11 апреля 2020

Я новичок в использовании tydir, но мне очень нравится его простота. Тем не менее, я застрял, пытаясь выяснить, как рассчитать процентное изменение численности на обработку каждого конкретного c рода. Например, насколько род Pyronemal увеличился в изобилии после пожара.

Мои данные содержат три столбца: обилие каждого таксона в вопросах, лечение (сгоревший и несгоревший) и род (Pyronema, Basidioascus и др. c), всего у меня 15 родов (15 родов, 2 обработки). (сгоревший против несгоревшего) и их соответствующие количества).

SampleID | Лечение | Изобилие | Род
CNF1T1 | Сожгли | 0,23 | Pyronema
CNF2T1 | Сожгли | 0.10 | Аспергилл

CNF3T1 | Unburned | 0,02 | Pyronema
CNF4T1 | Unburned | 0,05 | Аспергилл

Снимок моих метаданных:

enter image description here. .

Просматривая сайт, я увидел несколько кодов, которые мог бы использовать, но, похоже, он не работает так, как мне нужно. См. Ниже: Код, который я использовал, похоже, не группирует проценты по типу Обработка или Род. Я не уверен в том, что я делаю неправильно, но если кто-то может помочь, я буду очень признателен:

Код, который я использовал, выглядит следующим образом, с небольшими вариациями того же кода, в зависимости от того, что у меня есть найдено на этом сайте.

. .

** Используемый код: **

`Gen15MeltTrt %>% 
group_by(Treatment, Genus) %>% 
transmute(percent = 100 * Abundance / sum(Abundance))`*** 

Я использовал transmute, так как хотел создать новую таблицу, содержащую только интересующие переменные. .

.

Вывод из кода выше

.

Лечение | Род | Процент **

Несгоревший | Иноциб | 10,1

Несгоревший | Кониотирий | 21,0

необожженный | Кладофалофора | 4.65

Несгоревший | Кладофалофора | 4.65

Несгоревший | Кладофалофора | 4,65

Сожгли | Пиронема | 1,48

необожженный | Пиронема | 30,5

сожгли | Пиронема | 1,48

сожгли | Пенициллиум | 1,82

1 Ответ

0 голосов
/ 15 апреля 2020

Добро пожаловать в stackoverflow и R и dplyr! Один совет для того, чтобы задавать вопросы: это проще, если вы попытаетесь разобраться с проблемой, с которой вы столкнулись, и, желательно, поместить ее в контекст, который легко понять любому. Простой способ сделать это - найти проблему, с которой вы сталкиваетесь, в наборе данных, доступном в R. Ниже я постарался дать вам ответ на основе набора данных ChickWeight. Он включает в себя несколько очень полезных функций в dplyr, в которые я рекомендую вам погрузить зубы: group_by, mutate и first.

library(dplyr)

df <- ChickWeight

df %>% 
  group_by(Chick) %>% 
  mutate(percent = (weight - first(weight))/first(weight)*100)

Редактировать: получить процентное изменение для каждой процедуры (Тип диеты в наборе данных ChickWeight.

df2 <- df %>% 
  group_by(Diet,Time) %>% 
  summarise(mean = mean(weight,na.rm = T)) %>% 
  mutate(percent = (mean - first(mean))/first(mean)*100) 

Удачи!

...