Я пытаюсь организовать набор данных с несколькими репликами одного и того же местоположения по уникальным местоположениям. Кроме того, я хотел бы только сохранить каждую запись местоположения с максимальной информацией о численности. Вот верхние 6 строк набора данных. Обратите внимание, что 3 и 4 являются одним и тем же местом, поэтому я хотел бы отказаться от строки 3 и сохранить строку 4, поскольку она имеет более высокий уровень обилия. Строки 5 и 6 имеют самое высокое изобилие, но мне нужно только сохранить один из них.Использование dplyr для суммирования группы с дубликатами максимального числа
X abun location
1 1 L2507550
2 1 L668283
3 1 L831877
4 5 L831877
5 3 L668283
6 3 L668283
Вот код, который я использовал:
require(dplyr)
require(reshape2)
require(lubridate)
########Load data and clean########
#set working directory to load data from Data folder
setwd("V:/snailData")
getwd()
#Load csv
m <- read.csv("may.csv")
#group data by location and identify the maximum abundance for each location
m_max <- m %>% group_by(location) %>% summarise(m, max(abun))
Вот сообщение об ошибке я получаю:
> m_max <- m %>% group_by(location) %>% summarise(m, max(abun))
Error: expecting a single value
я получаю эту ошибку, потому что есть несколько записей о высоком обилии ? Любое понимание того, как эта проблема может быть исправлена, будет полезна. Спасибо.
UPDATE
Этот ответ от @paljenczy избавились от сообщения об ошибке (спасибо!): Оператор труба%>% передает результат выражения с левой стороны ее в качестве первого аргумента функцию справа. Таким образом, вам не нужен m в качестве первого аргумента для обобщения. Постарайся
'm_max < - м%>% group_by (место нахождения)%>% подвести итог (максимум (abun))
Однако, команда в конечном итоге выделения только те места с наибольшим обилием (только места с обилием 15) не самый высокий изобилие в каждом месте. Кто-нибудь знает, как это исправить?
Возможно, вы также загрузили пакет 'plyr', который приводит к конфликтам имен функций. Поэтому вы можете попробовать «m%>% group_by (location)%>% dplyr :: summary (max (abun))» и в будущем сначала загрузить plyr, а затем dplyr или вообще не загружать plyr, если не требуется –
@Elizabeth M. см. Обновленный ответ. Если это решает вашу проблему, пожалуйста, подумайте о ее принятии. – paljenczy