Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.
apply(). Но есть и более продвинутый их аналог, который предоставляет вам пакет purrr. В этом видео уроке мы рассмотрим большую часть функционала purrr.
Тайм коды:
00:00 Вступление
00:57 Какие преимущества даёт пакет purrr
02:15 Какие семейства функций есть в purrr
03:29 Семейство функций map
04:26 Основные аргументы функций пакета purrr
05:20 Работа с функциями семейства map
08:23 Пример сравнения map() с циклом for
08:56 Функции mapdfr(), mapdfc()
13:01 Итерирование сразу по нескольким объектам, семейства функций map2 и pmap
15:01 Синтаксис формул в purrr
20:05 Функции семейства walk
22:31 Функции keep() и discard()
26:27 Итерация по функциям с помощью функций семейства invoke
29:12 Функции reduce() и accumulate()
34:23 Заключение
Ссылки:
- видео
- пример кода
#видео_уроки_по_RgetProxy - пакет, который помогает обойти блокировку, например при работе с API заблокированных в вашей стране сервисов, для Украины это Вконтакте, Яндекс и так далее.
getProxy состоит всего из одной, одноимённой функции, запрашивает из API нескольких сервисов бесплатный прокси и перенаправляет через него ваше интернет соединение.
Что нового:
● С сентября многие столкнулись с проблемой SSL сертификатов, ранее getProxy под капотом использовал RCurl, версия 1.13 была полностью переписана на httr, и проблем с SSL сертификатом больше нет.
● Ранее пакет искал прокси только в двух сервисах, теперь добавлен третий proxy-list.download.
● Была полностью переписана логика подбора сервиса для запроса прокси, ранее по очереди использовались лимиты каждого сервера, теперь пакет делает 10 попыток рандомно опрашивая сервисы.
Ссылки:
- видео урок по работе с getPtoxy
- статья "Как обойти блокировку API запрещенных сервисов с помощью скриптов R"
#новости_и_релизы_Rdplyr 1.0.0, но в тот момент оформление этого материала закончилось на том, что я просто собрал все видео в один плейлист на YouTube.
Наконец у меня добрались руки собрать эти уроки в единый мини курс, который будет полезен тем, кто уже имеет базовые навыки работы в dplyr, но релиз версии 1.0.0 по какой-то причине пропустил, а в нём было много полезного.
Содержание:
- Функции select(), rename_with() и relocate()
- Функция across()
- Перебор строк функцией rowwise()
- Обновлённая функция summarise()
- Добавление, изменение и удаление строк дата фрейма через rows_*()
#курсы_по_Rlingglosses @aGricolaMZ.
Мой пакет позволяет делать лингвистические глоссы в html rmarkdown документе, а потом автоматически собирает их в список глосс. При этом значения глосс не придется писать руками: пакет сам их расшифрует.
Установка:
install.packages("remotes")
remotes::install_github("agricolamz/lingglosses")
# или из CRAN
install.packages('lingglosses')
Ссылки:
- документация пакета здесь
- предложения, благодарности и пожелания направлять автору
#новости_и_релизы_Rdtplyr дает вам скорость обработки данных data.table с синтаксисом dplyr; вы пишете код на dplyr (и tidyr), а dtplyr переводит его в эквивалент data.table.
Что нового:
В dtplyr стали доступны переводы следующих глаголов из tidyr: complete(), drop_na(), expand(), fill(), nest(), pivot_longer(), replace_na() и separate().
Примеры:
dt <- lazy_dt(data.frame(x = c(NA, "x.y", "x.z", "y.z")))
dt %>%
separate(x, c("A", "B"), sep = "\\.", remove = FALSE) %>%
show_query()
#> copy(`_DT1`)[, `:=`(c("A", "B"), tstrsplit(x, split = "\\."))]
dt <- lazy_dt(data.frame(x = c(1, NA, NA, 2, NA)))
dt %>%
fill(x) %>%
show_query()
#> copy(`_DT2`)[, `:=`(x = nafill(x, "locf"))]
dt %>%
replace_na(list(x = 99)) %>%
show_query()
#> copy(`_DT2`)[, `:=`(x = fcoalesce(x, 99))]
dt <- lazy_dt(relig_income)
dt %>%
pivot_longer(!religion, names_to = "income", values_to = "count") %>%
show_query()
#> melt(`_DT3`, measure.vars = c("<$10k", "$10-20k", "$20-30k",
#> "$30-40k", "$40-50k", "$50-75k", "$75-100k", "$100-150k", ">150k",
#> "Don't know/refused"), variable.name = "income", value.name = "count",
#> variable.factor = FALSE)
Функции соединения (inner_join(), left_join() и right_join()) были переписаны и под капотом используют [, вместо merge().
Примеры:
dt1 <- lazy_dt(data.frame(x = 1:3))
dt2 <- lazy_dt(data.frame(x = 2:3, y = c("a", "b")))
dt1 %>% inner_join(dt2, by = "x") %>% show_query()
#> `_DT4`[`_DT5`, on = .(x), nomatch = NULL, allow.cartesian = TRUE]
dt1 %>% left_join(dt2, by = "x") %>% show_query()
#> `_DT5`[`_DT4`, on = .(x), allow.cartesian = TRUE]
dt2 %>% right_join(dt1, by = "x") %>% show_query()
#> `_DT5`[`_DT4`, on = .(x), allow.cartesian = TRUE]dt1 <- lazy_dt(data.frame(x = 1:3))
dt2 <- lazy_dt(data.frame(x = 2:3, y = c("a", "b")))
dt1 %>% inner_join(dt2, by = "x") %>% show_query()
#> `_DT4`[`_DT5`, on = .(x), nomatch = NULL, allow.cartesian = TRUE]
dt1 %>% left_join(dt2, by = "x") %>% show_query()
#> `_DT5`[`_DT4`, on = .(x), allow.cartesian = TRUE]
dt2 %>% right_join(dt1, by = "x") %>% show_query()
#> `_DT5`[`_DT4`, on = .(x), allow.cartesian = TRUE]
Это обновление немного удлиняет перевод для простых объединений, но значительно упрощает базовый код. Это упростило более точное соответствие поведения dplyr для порядка столбцов, обработки названий по спецификациям, декартовых соединений by = character() и управления дублированными именами столбцов.
Ссылки:
- информация заимствована из статьи "dtplyr 1.2.0"
#новости_и_релизы_Rgtsummary и flextable
5.4. Пример использования многомерных методов: построение модели логистической регрессии
5.5. «A picture is worth a thousand words». Как сделать график к результатам исследования?
6. Список литературы и цитирование источников в тексте
7. Заключение
8. Дополнительные материалы
#статьи_по_R