Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
​​Набор полезных инфиксных операторов в R Пакет infix состоит из коллекции полезных операторов, которые можно разделить на 4 категории: ● Пайп операторы из пакета magrittr, о них я подробно рассказывал тут; ● Оператор обработки ошибок; ● Логические операторы функций; ● Общие операторы. Операторы обработки ошибок Для обработки ошибок infix предоставляет вам функцию tryExcept() и оператор %except% . Функция tryExcept() имеет 3 аргумента: ● expr - выражение, которое будет оцениваться ● except - выражение, которое будет выполняться, если expr завершился ошибкой ● error - функция обработчика ошибки, возникшей во время оценки expr. Примеры:
 
tryExcept({
  foo <- "foo"
  stop()
}, except = {
  foo <- "foo bar"
})
print(foo) # "foo bar"

С помощью оператора тоже самое можно прописать вот так:
 
  stop()
} %except% {
  foo <- "foo bar"
}
print(foo) # "foo bar"

Логические операторы функций Данный блок состоит из 3 операторов: f1 %&% f2 - логическое и f1 %|% f2 - логическое или f1 %xor% f2 - исключающее или Пример:
 
is.null.na <- is.null %|% is.na
all(is.null.na(NA), is.null.na(NULL)) # вернёт TRUE

Общие операторы В этот блок входят 4 оператора: ● %+% - оператор конкатенации строк ● %//% - создаёт строку пути к файлу ● %!in% - логическое не в списке, инвертированный оператор %in% %||% - оценивает выражение, и пропускает NULL, аналог функции dplyr::coalesce() Примеры:
 
# paste0 (%+%)
"01" %+% "jan" %+% "1970" # вернёт "01jan1970"

# file.path (%//%)
"home" %//% "dir" # вернёт "home/dir"

# nomatch (%!in%)
4 %!in% 1:3 # вернёт TRUE

# nil (%||%)
1 %||% 2 # вернёт 1
NULL %||% 2 # вернёт 2

#заметки_по_R