У меня есть четыре местообитания и по три участка на каждое местообитание, всего двенадцать участков. Я хочу получить среднюю частоту видов для каждого типа среды обитания, т.е. я хочу разделить частоту на три (количество участков на среду обитания). Мне нужно создать новый кадр данных, используя среду обитания, виды и среднюю частоту, которые будут использоваться в ggplot.

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

Мой набор данных выглядит так

 Habitat    Site    Species    Frequency
   A         A1         T           3
   A         A2         T           4
   A         A3         U           5
   B         B2         V           12
   C         C2         V           3
   D         D3         X           2

Я пробовал использовать

Mean_Frequency<-df[,4]/3

Это делит четвертый столбец (частота) на три, но не содержит переменных среды обитания и видов.

r
0
niamhailbhe 26 Ноя 2019 в 16:14

1 ответ

Если вы просто хотите добавить к данным столбец, равный частоте / 3:

df$Mean_Frequency <- df$Frequency / 3

Если вы хотите рассчитать среднюю частоту встречаемости каждого вида в среде обитания:

library(data.table)    
setDT(df)[, .(Mean_Frequency = mean(Frequency)), .(Habitat, Species)]
0
Metariat 26 Ноя 2019 в 16:20