R for Big Data: различия между версиями

Материал из Поле цифровой дидактики
Нет описания правки
 
Строка 12: Строка 12:
# [[Introductory Statistics for Economics]]
# [[Introductory Statistics for Economics]]
# [[Learning analytics methods and tutorials: A practical guide using R]]
# [[Learning analytics methods and tutorials: A practical guide using R]]
==== data.table: Быстрая фильтрация и группировка ====
Этот код создает таблицу с 10 миллионами строк и за доли секунды вычисляет среднее значение для каждого из десяти сегментов данных.
<syntaxhighlight lang="java">
// library(data.table)
# Создание data.table
dt <- data.table(id = 1:1e7, value = runif(1e7))
# Фильтрация строк (i) и вычисление среднего (j) по группам (by)
result <- dt[value > 0.5, .(avg_value = mean(value)), by = .(id %% 10)]
head(result)
</syntaxhighlight>
==== dtplyr: dplyr для огромных данных ====
Вы пишете привычный dplyr-код, а пакет dtplyr переводит его в высокопроизводительный data.table.
<syntaxhighlight lang="java">
// library(dtplyr)
library(dplyr, warn.conflicts = FALSE)
# Ленивая операция: код переводится в data.table, но данные не загружаются
lazy_dt <- lazy_dt(dt)
result <- lazy_dt %>%
  filter(value > 0.5) %>%
  group_by(group = id %% 10) %>%
  summarise(avg_value = mean(value))
# Момент выполнения: data.table выполняет запрос
result_df <- as.data.frame(result)
head(result_df)
</syntaxhighlight>

Текущая версия от 23:32, 6 апреля 2026

Описание R для обработки больших данных
Область знаний Информатика, Большие данные
Область использования (ISTE) Computational Thinker
Возрастная категория 14


Поясняющее видео
Близкие рецепту понятия
Среды и средства для приготовления рецепта: R, Spark

Перечень рецептов

Из книг:

  1. R for Data Science
  2. Big Data with R
  3. Introductory Statistics for Economics
  4. Learning analytics methods and tutorials: A practical guide using R

data.table: Быстрая фильтрация и группировка

Этот код создает таблицу с 10 миллионами строк и за доли секунды вычисляет среднее значение для каждого из десяти сегментов данных.

// library(data.table)

# Создание data.table
dt <- data.table(id = 1:1e7, value = runif(1e7))

# Фильтрация строк (i) и вычисление среднего (j) по группам (by)
result <- dt[value > 0.5, .(avg_value = mean(value)), by = .(id %% 10)]
head(result)

dtplyr: dplyr для огромных данных

Вы пишете привычный dplyr-код, а пакет dtplyr переводит его в высокопроизводительный data.table.

// library(dtplyr)
library(dplyr, warn.conflicts = FALSE)

# Ленивая операция: код переводится в data.table, но данные не загружаются
lazy_dt <- lazy_dt(dt)
result <- lazy_dt %>%
  filter(value > 0.5) %>%
  group_by(group = id %% 10) %>%
  summarise(avg_value = mean(value))

# Момент выполнения: data.table выполняет запрос
result_df <- as.data.frame(result)
head(result_df)