data.table выбирает строки по условию другого условия

С давней истории Apache Solr, я думаю, что одна сила Solr - его экосистема. Существует много плагинов Solr для различных типов данных и целей.

solr stack [/g1]

Поисковая платформа в нижеследующих слоях:

  • Цель данных: представлять различные типы данных и источники
  • Создание документа Цель: сбор информации о документе для индексирования
  • Индексирование и поиск Цель: сборка и запрос индекса документа
  • Улучшение логики Назначение: Дополнительная логика для обработки поисковые запросы и результаты
  • Служба поисковой платформы Цель: Добавить дополнительные функции ядра поисковой системы для предоставления сервисной платформы.
  • Приложение пользовательского интерфейса Цель: интерфейс или приложения для поиска конечных пользователей

Справочная статья: Поиск предприятия

-1
задан NelsonGon 21 February 2019 в 04:43
поделиться

1 ответ

Данные:

x <- read.table(header = TRUE, stringsAsFactors = FALSE, text = "
A  B
1  2
3  4
3  2
2  1")

Рабочий код:

library(data.table)
x[ head(order(A, B, decreasing = TRUE), n = 1), ]
#    A B
# 1: 3 4

Альтернатива:

x[ order(A, B, decreasing = TRUE)[1], ]

действительна, но выдает строку NA, когда nrow(x)==0, где я бы предпочел / ожидал 0 строк. Например:

x[0,][ order(A, B, decreasing = TRUE)[1], ]
#     A  B
# 1: NA NA
x[0,][ head(order(A, B, decreasing = TRUE), n = 1), ]
# Empty data.table (0 rows) of 2 cols: A,B

Еще одна альтернатива, мое первое предложение:

x[ order(A, B, decreasing = TRUE), ][1,]

Это совершенно законно, но, как предположил @thelatemail (спасибо!), Оно гораздо менее эффективно в этом создает весь (реструктурированный) кадр перед тем, как дать вам первый ряд.

Еще одна альтернатива (из толпы, еще раз спасибо thelatemail):

setorder(x, -A, -B)[1]
0
ответ дан r2evans 21 February 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: