Привет хорошие я стараюсь разрушать дату frame q имею с R, идея состоит в том, что у меня есть 3 переменные: сайт, вид, биомасса. Для каждого сайта у меня есть список видов, где обычно повторяют несколько раз те же виды в сайтах с биомассами, и я хочу q у меня вышел в каждый сайт только однажды каждый вид, с суммой изобилия, если он вышел больше одного раза в этом сайте. Он использовал пакет dplyr, и старался делать это с summarise (group_by), но только с собой q я разрушился список всех видов, которые выходят в общем количестве во всех объединенных сайтах и Вашей полной биомассе всех объединенных сайтов, не отделенном каждым наблюдаемым сайтом. Но стоило бы делать это каким бы то ни было образом в R. Большое спасибо в течение Вашего времени.
Привет, Включать пример данных ускоряет процесс. Смоги быть кодом, который производил бы данные, или если ты это копируешь пюпитра в виде дощечки с зажимом. Здесь одна спрашивает на английском на теме. Давайте предполагать такие данные как эти:
set.seed(3)
datos <- data.frame(sitio=paste0("sitio",sample(3,10,replace=TRUE)),
especie=paste0("e",sample(4,10,replace=10)),
biomasa=round(rnorm(10,20),0))
sitio especie biomasa
1 sitio3 e3 18
2 sitio3 e1 21
3 sitio2 e4 20
4 sitio3 e4 21
5 sitio2 e2 21
6 sitio1 e4 19
7 sitio1 e1 20
8 sitio1 e1 18
9 sitio3 e1 20
10 sitio1 e4 20
Ответ Рубена превосходный:
datos %>% group_by(sitio, especie) %>% summarise(biomasa = sum(biomasa))
sitio especie biomasa
(fctr) (fctr) (dbl)
1 sitio1 e1 38
2 sitio1 e4 39
3 sitio2 e2 21
4 sitio2 e4 20
5 sitio3 e1 41
6 sitio3 e3 18
7 sitio3 e4 21
Однако я предлагаю использование data.table как альтернативы, которая слегка быстрее и в она мне кажется более простой:
library(data.table)
datos <- as.data.table(datos)
datos[,sum(biomasa), by=c("especie","sitio")]
especie sitio V1
1: e3 sitio3 18
2: e1 sitio3 41
3: e4 sitio2 20
4: e4 sitio3 21
5: e2 sitio2 21
6: e4 sitio1 39
7: e1 sitio1 38
Ты был бы должен давать больше деталей проблемы (p.e. включать что-то из кода).
Если ты используешь пакет dplyr, имей в виду, что ты можешь группировать из-за более чем одной переменной. Пример:
datos %>% group_by(sitio, especie) %>% summarise(biomasa = sum(biomasa))
Я надеюсь, что он подает тебя...