R — итоги
Кратко — что стоит унести из раздела "R". Если пункт кажется туманным — откройте указанную главу или оглавление.
FAQ — Часто задаваемые вопросы
Типичные сбои и ситуации, с которыми сталкиваются новички после раздела. Здесь — что делать и где копать в главах; определения терминов — в оглавлении и профильных статьях.
Вопрос. R не находится в терминале после установки с r-project.org.
Ответ. Добавьте каталог bin установки R в PATH (Windows: C:\Program Files\R\R-x.x.x\bin). В RStudio используйте встроенную консоль — PATH настраивается автоматически. Подробнее здесь — первая программа.
Вопрос. Rscript analysis.R — "cannot open file 'sales.csv': No such file".
Ответ. Рабочая директория при Rscript — каталог запуска, не расположение .R файла. Используйте here::here(), полный путь или setwd() в начале скрипта. Подробнее здесь — первая программа, простые приложения.
Вопрос. В RStudio код работает, из терминала Rscript — "object 'df' not found".
Ответ. В интерактивной сессии вы уже выполнили предыдущие строки; Rscript стартует с чистой сессии. Весь pipeline должен быть в одном файле сверху вниз. Подробнее здесь — первая программа.
Вопрос. mean(x) вернул NA, хотя в векторе есть числа.
Ответ. В векторе есть пропуски NA — по умолчанию mean возвращает NA. Добавьте na.rm = TRUE или очистите данные заранее. Подробнее здесь — типы и векторизация, основы.
Вопрос. c(1, 2, NA) > 0 — вместо TRUE/FALSE сплошные NA.
Ответ. Операции с NA распространяют пропуск. Фильтруйте через !is.na(x) & x > 0 или na.omit. Подробнее здесь — типы, управление.
Вопрос. if (x > 0) ... — "the condition has length > 1".
Ответ. if принимает одно логическое значение. Для вектора используйте ifelse() или фильтрацию x[x > 0]. Подробнее здесь — управление и операторы.
Вопрос. && vs & — скрипт ведёт себя по-разному на векторе.
Ответ. && и || — скалярные, берут первый элемент; & и | — поэлементные для векторов. В if используйте &&. Подробнее здесь — управление.
Вопрос. read.csv превратил столбец "00123" в число 123.
Ответ. CSV без явных типов угадывается; для кодов используйте colClasses или readr::read_csv с col_types. Подробнее здесь — простые приложения.
Вопрос. stringsAsFactors = TRUE по умолчанию — факторы вместо текста.
Ответ. В старом read.csv текст становился фактором. Указывайте stringsAsFactors = FALSE или переходите на readr. Подробнее здесь — простые приложения, типы.
Вопрос. library(dplyr) — "there is no package called 'dplyr'".
Ответ. Пакет не установлен: install.packages("dplyr") один раз в сессии (или в Dockerfile/renv). Затем library(dplyr). Подробнее здесь — функции и пакеты, простые приложения.
Вопрос. install.packages просит выбрать mirror в интерактиве — CI падает.
Ответ. Задайте зеркало: repos = "https://cloud.r-project.org" в install.packages или переменную R_REPOS. В renv версии фиксируются в lockfile. Подробнее здесь — архитектура.
Вопрос. filter(df, amount > 0) — "could not find function 'filter'".
Ответ. Конфликт имён: base R и dplyr оба имеют filter. Подключите library(dplyr) или вызывайте dplyr::filter(). Подробнее здесь — простые приложения, функции.
Вопрос. %>% pipe не работает — "could not find function '%>%'".
Ответ. Оператор из magrittr / tidyverse — нужен library(dplyr) или в R 4.1+ нативный |>. Подробнее здесь — простые приложения.
Вопрос. group_by + summarise — предупреждение про .groups.
Ответ. Добавьте .groups = "drop" в summarise, чтобы убрать лишнюю группировку в результате. Подробнее здесь — простые приложения.
Вопрос. ggplot пустой — нет точек, ошибок тоже нет.
Ответ. Проверьте имена столбцов в aes(), типы (фактор vs character), фильтры до графика и drop = FALSE для пустых уровней. Подробнее здесь — простые приложения.
Вопрос. as.Date("01/02/2025") дал не ту дату — формат US vs EU.
Ответ. Укажите формат явно: as.Date(..., format = "%d/%m/%Y") или lubridate::dmy(). Подробнее здесь — типы, простые приложения.
Вопрос. df$amount и df[["amount"]] ведут себя по-разному после attach().
Ответ. attach устарел и создаёт путаницу в поиске имён. Используйте df$col, pipe или `.data$col в dplyr. Подробнее здесь — основы.
Вопрос. Цикл for медленный на миллионе строк — как ускорить?
Ответ. Перепишите на векторные операции или data.table; циклы оставляют для симуляций и последовательных моделей. Подробнее здесь — типы и векторизация.
Вопрос. lm(y ~ x) — NA в коэффициентах, хотя данные "есть".
Ответ. Строки с NA в y или x отбрасываются; при полной коллинеарности предикторов коэффициенты NA. Проверьте na.omit и model.matrix. Подробнее здесь — основы, простые приложения.
Вопрос. set.seed(42) — на другом ПК результат другой.
Ответ. Разные версии R или генератор (RNG kind) дают разные потоки. Явно задайте RNGkind() и зафиксируйте версию R в renv. Подробнее здесь — архитектура.
Вопрос. write_json / read_json — числа стали списками вложенных массивов.
Ответ. Настройте auto_unbox = TRUE при записи и simplifyVector при чтении. Структура JSON должна совпадать с ожидаемым списком R. Подробнее здесь — простые приложения.
Вопрос. Кириллица в ggsave PDF — квадратики вместо букв.
Ответ. Подключите шрифт с кириллицей через theme(text = element_text(family = ...)) или экспортируйте PNG. На Windows часто помогает windowsFonts. Подробнее здесь — простые приложения.
Вопрос. source("helpers.R") дважды — функции переопределились странно.
Ответ. Повторный source выполняет файл снова. Для библиотек используйте пакет с NAMESPACE или RStudio project structure. Подробнее здесь — функции и пакеты.
Вопрос. Пришёл из Python pandas — <- и [ кажутся хаосом.
Ответ. Начните с tidyverse pipe и select/filter/mutate; индексация R ([, [[, $) разберите в типах. Подробнее здесь — основы.
Вопрос. Excel показывает другие цифры, чем summary() в R.
Ответ. Excel мог округлить отображение, скрыть строки или интерпретировать даты иначе. Сверьте сырые CSV, типы столбцов и фильтры filter(). Подробнее здесь — данные и разметка.
Вопрос. Quarto/R Markdown не рендерится — "package not found" только при knit.
Ответ. Rmd использует отдельную сессию — установите пакеты в том же renv, что и проект, и укажите renv::restore(). Подробнее здесь — архитектура.
Вопрос. После раздела — Shiny, plumber или углубить статистику?
Ответ. Закрепите простые приложения и EDA на одном CSV. Shiny — после уверенного data.frame и ggplot2; API — после интеграций. Подробнее здесь — оглавление.
Вопрос. R vs Python для data science — что выбрать?
Ответ. R силён в статистике, ggplot2 и репродуцируемых отчётах; Python — в ML-сервисах и ETL. Часто используют оба. Подробнее здесь — основы, Python.
Вопрос. Как установить R на Windows 10 бесплатно?
Ответ. Установщик с cran.r-project.org; опционально RStudio/Posit Desktop. Проверка — R --version. Подробнее здесь — первая программа.
Вопрос. RStudio vs R — в чём разница?
Ответ. R — язык и интерпретатор; RStudio — IDE с консолью, редактором и графикой. Скрипты запускают и через Rscript. Подробнее здесь — первая программа.
Вопрос. mean returns NA in R — как исправить?
Ответ. В данных есть NA — добавьте na.rm = TRUE или удалите пропуски через na.omit/drop_na. Подробнее здесь — типы, основы.
Вопрос. read.csv R example — как загрузить таблицу?
Ответ. df <- read.csv("file.csv", stringsAsFactors = FALSE); для больших файлов — readr::read_csv. Подробнее здесь — простые приложения.
Вопрос. ggplot2 tutorial for beginners — с чего начать?
Ответ. ggplot(data, aes(x=..., y=...)) + geom_point() + theme_minimal(). Полный пример — простые приложения, теория слоёв — основы.
Вопрос. dplyr filter mutate summarise — что это за "глаголы"?
Ответ. Функции tidyverse для отбора строк, новых столбцов и агрегатов в pipe %>% или |>. Пример — простые приложения.
Вопрос. Что такое tidyverse в R простыми словами?
Ответ. Набор согласованных пакетов (dplyr, ggplot2, tidyr) для "чистых" табличных данных. Подробнее здесь — основы, история.
Вопрос. install.packages R — куда ставятся пакеты?
Ответ. В user library на диске; подключение — library(pkg). В проектах фиксируйте версии через renv. Подробнее здесь — функции и пакеты, архитектура.
Вопрос. R script vs RStudio Source — в чём разница запуска?
Ответ. Rscript file.R — чистая сессия для CI; Source в IDE выполняет файл в текущей сессии с уже загруженными объектами. Подробнее здесь — первая программа.
Вопрос. lm() in R — линейная регрессия пример?
Ответ. model <- lm(y ~ x + z, data = df); смотрите summary(model). На том же наборе tips — простые приложения.
Вопрос. Shiny R — нужен ли для первого знакомства с R?
Ответ. Нет: сначала CSV, dplyr и ggplot2 в 103.md; Shiny — интерактивный UI поверх готового анализа. Подробнее здесь — архитектура.
Вопрос. R Markdown vs Quarto — что использовать для отчёта?
Ответ. Quarto — современный наследник R Markdown, поддерживает R, Python, Julia. Концепция та же: код + текст → PDF/HTML. Подробнее здесь — архитектура, простые приложения.
Вопрос. factor in R — зачем нужен тип factor?
Ответ. Категориальные переменные с фиксированными уровнями для моделей и графиков. Не превращайте текст в factor без необходимости. Подробнее здесь — типы.
Вопрос. data.frame vs tibble — что выбрать?
Ответ. Tibble из tidyverse печатается предсказуемее и дружит с pipe; base data.frame — везде в legacy-коде. Подробнее здесь — основы, типы.
Вопрос. R for statistics beginners — сколько учить?
Ответ. Базовый EDA на CSV — 2–4 недели; статистика и модели — дольше. Маршрут новичка — intro: 7 → 4 → 103.
Вопрос. R vs Excel для анализа — когда переходить на R?
Ответ. Когда нужны воспроизводимость, большие таблицы и сложная статистика. Excel удобен для быстрого просмотра. Подробнее здесь — данные и разметка.
Вопрос. pipe operator R %>% vs |> — какой использовать?
Ответ. %>% — magrittr/tidyverse; |> — встроенный с R 4.1+. Смысл один: передать результат в следующую функцию. Подробнее здесь — простые приложения.
Вопрос. ggsave R — как сохранить график в PNG?
Ответ. ggsave("plot.png", plot = p, width = 8, height = 4, dpi = 150). Подробнее здесь — простые приложения.
Вопрос. R renv — как зафиксировать версии пакетов?
Ответ. renv::init(), работа, renv::snapshot(); на другом ПК — renv::restore(). Подробнее здесь — архитектура.
Вопрос. CRAN R — что это и безопасно ли install.packages?
Ответ. CRAN — официальный репозиторий пакетов R с проверками; ставьте оттуда или с доверенных источников (Bioconductor для био). Подробнее здесь — функции и пакеты, история.
Вопрос. Где учить R на русском бесплатно с нуля?
Ответ. Раздел R энциклопедии: оглавление, первая программа, практика 103.md.
Вопрос. R vectorization — зачем не писать for loop?
Ответ. Операции над вектором выполняются в C внутри R — быстрее и короче. Подробнее здесь — типы и векторизация.
Что запомнить
R — язык для статистики и анализа данных: векторы как базовая единица, NA для пропусков, пакеты с CRAN и воспроизводимые отчёты через Quarto/R Markdown.
Основные особенности R:
- Векторизация — операции над целым вектором без явного цикла.
- data.frame / tibble — табличные данные; tidyverse (
dplyr,ggplot2,tidyr) для пайплайнов. - Факторы — категориальные переменные; осознанно задавайте уровни.
- Формулы —
y ~ xдля моделейlm,glm,t.test. - Пакеты —
install.packages+library; renv для фиксации версий.
Маршрут для новичка: первая программа → типы → управление → функции → простые приложения → основы → архитектура.
Три практических правила:
- Пропуски — явно через
na.rm,is.naилиdrop_na. - Пути к файлам — через проект/
here, не "магический"getwd(). - График и таблица — из одного скрипта или
.qmd, чтобы отчёт воспроизводился.
Куда идти дальше
| Тема | Раздел |
|---|---|
| Численные расчёты и JIT | Julia — о разделе |
| ETL и сервисы | Python — о разделе |
| Табличные данные | Данные и разметка |
Практика: простые приложения на R.
Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). История языка R - происхождение в академической среде и развитие в основной инструмент статистики и анализа данных. Простые приложения на R — скрипты, CSV, агрегация, ggplot2, JSON и воспроизводимый мини-отчёт. Основы языка R - синтаксис, модель данных и применение в статистике, анализе и визуализации. Архитектура аналитических приложений на R - экосистема пакетов, модульность и организация вычислительных пайплайнов. Типизация, набор правил определения типа данных значений языка. Управляющие конструкции и операторы R - условия, циклы и основные категории операторов в аналитическом коде. Функции и пакеты в R - определение функций, переиспользование кода и расширение экосистемы через пакеты. Гайд по установке и настройке с написанием первой программы и её запуском.История языка R
Простые приложения на R
Основы языка R
Архитектура аналитических приложений на R
Типы данных и векторные операции
Управляющие конструкции и операторы R
Функции и пакеты
Первая программа на R