Telegram Group & Telegram Channel
Супер крутая инструкция по освоению библиотеки purrr для замены циклов

Немного контекста: в R принято обходиться не то чтоб без вложенных циклов, а без циклов вообще. Как это реализуется? Большинство функций в R векторизованы, что означает, что функция будет работать со всеми элементами вектора без необходимости проходить цикл и обрабатывать каждый элемент по одному.
Простейший пример векторизации - возвести числа от 1 до 10 в квадрат. Классическим подходом было бы написать цикл от 1 до 10 и возвести в квадрат каждый элемент. Однако в R это можно сделать гораздо проще!
(1:10)**2
[1] 1 4 9 16 25 36 49 64 81 100

Мы просто взяли вектор чисел от 1 до 10 и возвели в квадрат одной строчкой без всяких циклов. Это самый простой прием, для более сложных пригодятся функции семейства apply или их более продвинутый аналог функции семейства map_*, map2_* из библиотеки purrr. Именно последним посвящен туториал, скачать который можно по ссылке.

Пример из жизни применения map функции. У меня много однотипных датасетов в определенной директории с одним расширением (например csv). Задача считать все датасеты в один лист для последующих манипуляций с ними. Чтобы не писать цикл, используем purrr::map
library(tidyverse)
csv_file_names <- dir(pattern = 'csv')
list_csv <- map(csv_file_names, ~read_csv(.x))

ИЛИ
list_csv <- map(csv_file_names, function(x) read_csv(x))

, если без синтаксического сахара, а использовать более привычный apply-способ

Вообще на тему функционального программирования в R, векторизации и сравнения *apply и map_* функций можно довольно много что расписать, если есть интерес к этой теме, ставьте реакцию с китом (потому что с котом еще нет реакций, а символ purrr - котик).

#R #tidyverse #purrr



group-telegram.com/stats_for_science/45
Create:
Last Update:

Супер крутая инструкция по освоению библиотеки purrr для замены циклов

Немного контекста: в R принято обходиться не то чтоб без вложенных циклов, а без циклов вообще. Как это реализуется? Большинство функций в R векторизованы, что означает, что функция будет работать со всеми элементами вектора без необходимости проходить цикл и обрабатывать каждый элемент по одному.
Простейший пример векторизации - возвести числа от 1 до 10 в квадрат. Классическим подходом было бы написать цикл от 1 до 10 и возвести в квадрат каждый элемент. Однако в R это можно сделать гораздо проще!

(1:10)**2
[1] 1 4 9 16 25 36 49 64 81 100

Мы просто взяли вектор чисел от 1 до 10 и возвели в квадрат одной строчкой без всяких циклов. Это самый простой прием, для более сложных пригодятся функции семейства apply или их более продвинутый аналог функции семейства map_*, map2_* из библиотеки purrr. Именно последним посвящен туториал, скачать который можно по ссылке.

Пример из жизни применения map функции. У меня много однотипных датасетов в определенной директории с одним расширением (например csv). Задача считать все датасеты в один лист для последующих манипуляций с ними. Чтобы не писать цикл, используем purrr::map
library(tidyverse)
csv_file_names <- dir(pattern = 'csv')
list_csv <- map(csv_file_names, ~read_csv(.x))

ИЛИ
list_csv <- map(csv_file_names, function(x) read_csv(x))

, если без синтаксического сахара, а использовать более привычный apply-способ

Вообще на тему функционального программирования в R, векторизации и сравнения *apply и map_* функций можно довольно много что расписать, если есть интерес к этой теме, ставьте реакцию с китом (потому что с котом еще нет реакций, а символ purrr - котик).

#R #tidyverse #purrr

BY Статистика и R в науке и аналитике


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/stats_for_science/45

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

To that end, when files are actively downloading, a new icon now appears in the Search bar that users can tap to view and manage downloads, pause and resume all downloads or just individual items, and select one to increase its priority or view it in a chat. Although some channels have been removed, the curation process is considered opaque and insufficient by analysts. Sebi said data, emails and other documents are being retrieved from the seized devices and detailed investigation is in progress. "Like the bombing of the maternity ward in Mariupol," he said, "Even before it hits the news, you see the videos on the Telegram channels." Lastly, the web previews of t.me links have been given a new look, adding chat backgrounds and design elements from the fully-features Telegram Web client.
from it


Telegram Статистика и R в науке и аналитике
FROM American