Функция Between в R не распознает аргумент incbounds

#r

Вопрос:

Я использую данные NYCflights13 и получаю неиспользуемую ошибку аргумента при попытке найти рейсы, вылетающие между » a » и «b»

фильтр(рейсы, между(dep_time, 0, 600, incbounds = FALSE))

Ошибка: Проблема с filter() вводом ..1 .

ℹ Ввод ..1 есть between(dep_time, 0, 600, incbounds = FALSE) .

x неиспользуемый аргумент (incbounds = FALSE)

Комментарии:

1. Проверьте ?between , нет ли incbounds аргумента. Это объясняет ошибку.

Ответ №1:

Неиспользуемый аргумент означает, что параметр incbounds не определен в between() . Вот документ. Для этого вы можете написать свою собственную функцию.

 between_new <- (x, left, right, incbounds = TRUE) {
  if (incbounds) {
    x >= left amp; x <= right
  } else {
    x > left amp; x < right
  }
}

x <- filter(flights, between_new(dep_time, 0, 600, incbounds = FALSE))
summary(x$dep_time)
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#     1.0   538.0   554.0   480.9   556.0   559.0 
 

Комментарии:

1. Спасибо! Существует ли какая-либо функция dplyr или R, которая позволяет проверять наличие двух значений, исключая границы?

2. Я не отдаю себе в этом отчета. Я думаю, вы можете легко исключить границы, удалив по одному блоку с обоих концов: filter(flights, between(dep_time, 0 1, 600 - 1))