Извлечь максимальное значение в каждой группе в кадре данных

У меня есть кадр данных с переменной группировки («Джин») и переменная значения («Значение»):

Gene Value A 12 A 10 B 3 B 5 B 6 C 1 D 3 D 4 

Для каждого уровня моей переменной группировки я хочу извлечь максимальное значение. Таким образом, результатом должен быть кадр данных с одной строкой на уровне переменной группировки:

 Gene Value A 12 B 6 C 1 D 4 

Может ли aggregate трюк?

В R есть много возможностей сделать это. Вот некоторые из них:

 df <- read.table(header = TRUE, text = 'Gene Value A 12 A 10 B 3 B 5 B 6 C 1 D 3 D 4') # aggregate aggregate(df$Value, by = list(df$Gene), max) aggregate(Value ~ Gene, data = df, max) # tapply tapply(df$Value, df$Gene, max) # split + lapply lapply(split(df, df$Gene), function(y) max(y$Value)) # plyr require(plyr) ddply(df, .(Gene), summarise, Value = max(Value)) # dplyr require(dplyr) df %>% group_by(Gene) %>% summarise(Value = max(Value)) # data.table require(data.table) dt <- data.table(df) dt[ , max(Value), by = Gene] # doBy require(doBy) summaryBy(Value~Gene, data = df, FUN = max) # sqldf require(sqldf) sqldf("select Gene, max(Value) as Value from df group by Gene", drv = 'SQLite') # ave df[as.logical(ave(df$Value, df$Gene, FUN = function(x) x == max(x))),] 

Использование sqldf и стандартного sql для получения максимальных значений, сгруппированных по другой переменной

https://cran.r-project.org/web/packages/sqldf/sqldf.pdf

 library(sqldf) sqldf("select max(Value),Gene from df1 group by Gene") 

или

Использование превосходного пакета Hmisc для группового применения функции (макс.) https://www.rdocumentation.org/packages/Hmisc/versions/4.0-3/topics/summarize

 library(Hmisc) summarize(df1$Value,df1$Gene,max) 
 df$Gene <- as.factor(df$Gene) do.call(rbind, lapply(split(df,df$Gene), function(x) {return(x[which.max(x$Value),])})) 

Просто используя базу R

  • Создание нескольких графических элементов из R-функции
  • Вставка двух векторов с комбинациями всех элементов векторов
  • Преобразование года и месяца (формат «yyyy-mm») на дату?
  • Почему объекты R не печатаются в функции или в цикле «для»?
  • Ошибка: неожиданный символ / ввод / строка константа / числовая константа / SPECIAL в моем коде
  • Как преобразовать коэффициент в integer \ numeric без потери информации?
  • Ошибка в if / while (условие) {: аргумент имеет длину 0
  • Найдите дополнение к кадру данных (антисоединение)
  • Многострочные методы обхода комментариев?
  • Как эффективно фильтровать фрейм данных?
  • Быстрое чтение очень больших таблиц в качестве данных
  • Interesting Posts

    Папка SRC в Eclipse пуста (class MainActivity не создан) после создания нового проекта андроида с использованием Eclipse

    Существуют ли какие-либо методы, помогающие решить общие проблемы SQLite?

    Невозможно изменить настройки сетевого адаптера с помощью ethtool

    Как разработать алгоритм для расчета голограммы

    Обработка ошибок с помощью адаптера (теперь по умолчанию) Ember Data JSON-API

    Ошибка развертывания: запуск Tomcat не удался, порт 8080 сервера уже используется

    Настройка Spark для работы с ноутбуком Jupyter и Anaconda

    Не удалось импортировать новый проект Gradle: не удалось найти версию Build Tools * .0.0

    Лучшие настройки SSD для Windows 7

    SSL и непонимание вручную

    Обработка событий Delphi, создание собственного события

    Android Java; Как разобрать локальный файл JSON из папки с данными в ListView

    Как убить процесс, который в настоящее время использует порт на localhost в Windows?

    Преобразование JSON в XML в Java

    Regex для проверки формата даты dd / mm / yyyy

    Давайте будем гением компьютера.