Показать и удалить самые длинные n длительностей по top_n - PullRequest
2 голосов
/ 31 октября 2019

У меня есть данные, как показано ниже myDate из файла CSV:

start                  end
2017-07-22 04:00:00    2017-08-05 04:00:00
2014-05-16 17:00:00    2014-05-25 18:40:00  
2018-12-13 22:00:00    2018-12-18 07:59:59  

Я также создаю еще один столбец для продолжительности в днях:

library(tidyverse)
myDate$duration <- as.numeric(difftime(parse_datetime(myDate$end, "%Y-%m-%d %H:%M:%S"),
                                       parse_datetime(myDate$start, "%Y-%m-%d %H:%M:%S"),
                                       units = "days"))

У меня есть 2 вопроса:

  1. Я хочу отобразить длительность n (говорит, что n = 5), я делаю это top_n(5, myDate$duration), но я получил эту ошибку:

Ошибка в UseMethod ("tbl_vars"): нет применимого метода для 'tbl_vars', примененного к объекту класса "c ('double', 'numeric')

Как это исправить?

Как мне удалить самые длинные 10% myDate с точки зрения duration?

1 Ответ

3 голосов
/ 31 октября 2019

Вопрос 1

myDate %>%
  top_n(5, duration)

Вопрос 2

Удаление самых длинных 10% продолжительности означает сохранение самых коротких 90% этого времени. Отрицательная длительность -duration означает использование возрастающего порядка, то есть выбор первых n наименьших значений.

myDate %>%
  top_frac(1 - 0.1, -duration)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...