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: |

In this regard, Sebi collaborated with the Telecom Regulatory Authority of India (TRAI) to reduce the vulnerability of the securities market to manipulation through misuse of mass communication medium like bulk SMS. That hurt tech stocks. For the past few weeks, the 10-year yield has traded between 1.72% and 2%, as traders moved into the bond for safety when Russia headlines were ugly—and out of it when headlines improved. Now, the yield is touching its pandemic-era high. If the yield breaks above that level, that could signal that it’s on a sustainable path higher. Higher long-dated bond yields make future profits less valuable—and many tech companies are valued on the basis of profits forecast for many years in the future. Since January 2022, the SC has received a total of 47 complaints and enquiries on illegal investment schemes promoted through Telegram. These fraudulent schemes offer non-existent investment opportunities, promising very attractive and risk-free returns within a short span of time. They commonly offer unrealistic returns of as high as 1,000% within 24 hours or even within a few hours. Meanwhile, a completely redesigned attachment menu appears when sending multiple photos or vides. Users can tap "X selected" (X being the number of items) at the top of the panel to preview how the album will look in the chat when it's sent, as well as rearrange or remove selected media. 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 ms


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