На этой странице

Консоль R

В DataSuite 2 встроена полноценная консоль R на основе WebR — версии R, которая целиком работает в браузере. Чтобы открыть консоль, нажмите кнопку Консоль R (значок монитора) на верхней панели.

Зачем нужна консоль?

Каждый анализ в DataSuite выводит в консоль свой код R. Когда вы нажимаете «Рассчитать» в любом модуле, в консоли появляются те самые команды R, которые выполняет приложение. Это тот же код, что вы написали бы сами в RStudio или любой другой среде R.

Поэтому консоль можно использовать, чтобы:

  • Изучать R на примерах — провести анализ через интерфейс, а затем разобрать сгенерированный код и увидеть, как устроен расчёт
  • Проверять методику — видеть, какие именно функции, параметры и поправки применены
  • Дорабатывать и перезапускать — скопировать команду из вывода консоли, поменять в ней параметры или спецификацию модели и выполнить её заново
  • Выходить за рамки интерфейса — встроенные модули охватывают типичные анализы, а возможности R гораздо шире. Всё, чего нет в модулях, можно сделать в консоли.

Чтобы работать с DataSuite, знать R не обязательно. Но если вам интересно, консоль всегда под рукой: в ней видно, что делает приложение, и в любой момент можно взять управление на себя.

Выполнение команд

Введите код R в поле ввода и нажмите Ctrl+Enter (Cmd+Enter на Mac) или кнопку Запуск. Результат появится выше, в области вывода консоли.

  • Enter и Shift+Enter — перенос строки для многострочного ввода
  • Стрелки вверх и вниз — переход по истории команд, когда курсор стоит на первой (вверх) или последней (вниз) строке поля. В истории хранится до 50 последних команд, и она сохраняется между сеансами
mean(c(1, 2, 3, 4, 5))

Слэш-команды

Введите /, и появится список специальных команд. Выберите команду стрелками вверх/вниз и подставьте её в поле ввода клавишей Tab.

/data — загрузить набор данных в R

Команда передаёт текущие данные DataSuite в R как фрейм данных df. После неё доступны обычные функции R:

/data
summary(df)
head(df)
str(df)

Во фрейм данных попадают все переменные, выбранные в DataSuite, с учётом действующих фильтров и преобразований.

/output <variable> — показать объект в области результатов

Команда берёт переменную R и показывает её в виде оформленной карточки рядом с результатами других анализов.

model <- lm(Score ~ Age + Group, data = df)
/output model

Вид карточки зависит от типа объекта:

  • Фреймы данных и матрицы — таблица
  • Именованные векторы — таблица имён и значений
  • Короткие неименованные векторы — значения через запятую
  • Длинные неименованные векторы (больше 20 элементов) — первые 20 значений и общее число элементов
  • Списки — рекурсивный вывод с отдельным подразделом для каждого именованного элемента

/upload — загрузить внешний файл

Открывает окно выбора файла и загружает файл в виртуальную файловую систему R (в папку /home/web_user/). После этого файл можно прочитать из R:

/upload
external_data <- read.csv("myfile.csv")

/download <filename> — скачать файл из R

Скачивает файл из виртуальной файловой системы R на ваш компьютер:

write.csv(results, "output.csv")
/download output.csv

Если такого файла нет, консоль предложит выполнить list.files() и посмотреть, какие файлы доступны.

/clear — очистить вывод консоли

Очищает область вывода консоли. Сессия R и переменные остаются нетронутыми.

/reset — перезапустить R

Запускает движок R заново. Все переменные, загруженные пакеты и состояние сессии R теряются. Команда пригодится, если что-то пошло не так или нужно начать с чистого листа.

/clearplots — очистить галерею графиков

Удаляет все графики с вкладки Графики (подробнее — в разделе Графики ниже).

/outputplot [n] — отправить график в результаты

Отправляет график в область результатов в виде карточки. Без аргумента отправляется последний график. С номером (например, /outputplot 3) отправляется график с этим номером, а с аргументом all — все графики галереи.

/help — показать доступные команды

Выводит список всех слэш-команд и ссылки на документацию по R:

Графики

В окне консоли две вкладки: Консоль и Графики. Команда построения графика (например, plot(1:10) или hist(df$Score)) выводит результат в галерею на вкладке Графики. Графики нумеруются (#1, #2, …). Если новый график появился, пока открыта вкладка Консоль, на вкладке Графики загорается точка-индикатор.

Команда /outputplot отправляет графики в основную область результатов, а /clearplots очищает галерею.

Формульная нотация R

Многие функции R, в том числе lm(), glm(), t.test(), aov() и функции построения графиков, задают связь между переменными с помощью формулы. Формула имеет вид response ~ terms: слева от тильды стоит отклик, справа — члены модели, которые его описывают. Ту же запись используют модуль регрессии и анализ путей в DataSuite.

Операторы

Оператор Значение Пример Что означает
~ «зависит от» — отделяет левую часть (отклик) от правой (предикторы) Y ~ X Y предсказывается по X
+ добавить член Y ~ A + B главные эффекты A и B
- исключить член Y ~ A*B - A:B A и B без их взаимодействия
* главные эффекты и их взаимодействие Y ~ A * B A + B + A:B
: только взаимодействие (без главных эффектов) Y ~ A + B + A:B то же, что A * B
^ взаимодействия до заданного порядка Y ~ (A + B + C)^2 все главные эффекты и все парные взаимодействия
I() «как есть» — обычная арифметика вместо операторов формулы Y ~ X + I(X^2) линейный и квадратичный члены
1 свободный член (включён по умолчанию) Y ~ X - 1 модель без свободного члена
. все остальные переменные фрейма данных Y ~ . Y предсказывается по всем остальным столбцам

Типичные формулы

Простая регрессия — один предиктор:

Y ~ X

Множественная регрессия — несколько предикторов:

Y ~ A + B + C

Взаимодействие — зависит ли эффект A от B?

Y ~ A * B          # то же, что A + B + A:B

Полиномиальная модель — квадратичный или кубический член:

Y ~ X + I(X^2)              # квадратичная
Y ~ X + I(X^2) + I(X^3)     # кубическая

Полный факторный план — все взаимодействия до заданного порядка:

Y ~ (A + B + C)^2     # все главные эффекты и все парные взаимодействия
Y ~ A * B * C          # все главные эффекты, парные взаимодействия и тройное взаимодействие

Без свободного члена — линия проходит через начало координат:

Y ~ X - 1

Все переменные — предсказание по всем остальным столбцам:

Y ~ .

Когда нужна I(): внутри формулы операторы R (+, *, ^) имеют особый смысл. Если нужна обычная арифметика (например, X в квадрате), заключите выражение в I(): тогда R вычислит его, а не примет за оператор формулы. Y ~ X^2 означает «взаимодействие X с самим собой» (то есть просто X), а Y ~ I(X^2) — «квадрат X как предиктор».

Примеры

Изучить данные

/data
summary(df)           # описательная сводка по всем переменным
table(df$Gender)      # таблица частот категориальной переменной
cor(df$Age, df$Score) # быстрая корреляция двух переменных

Подобрать собственную модель

Встроенный модуль регрессии охватывает типичные случаи, а в консоли можно подобрать любую модель, которую поддерживает R:

/data
model <- lm(Score ~ Age * Group + I(Age^2), data = df)
summary(model)

Команда /output model выведет результаты в виде оформленной карточки рядом с другими анализами.

Доработать сгенерированный анализ

Допустим, вы сравнили группы по t-критерию через интерфейс, и в консоли появилась строка:

t.test(Score ~ Group, data = df, var.equal = FALSE)

Эту строку можно скопировать, изменить и выполнить заново — например, перейти к одностороннему критерию:

t.test(Score ~ Group, data = df, var.equal = FALSE, alternative = "greater")

Быстро построить график

/data
hist(df$Score, main = "Распределение баллов", col = "steelblue")

График появится на вкладке Графики. Команда /outputplot отправит его в область результатов, к карточкам других анализов.

Примечание: по сравнению с настольной версией R отрисовка графиков в WebR ограничена. Базовые графики (hist, plot, boxplot, barplot) строятся без проблем.

Установить и использовать пакет

ds_library(psych)
/data
describe(df)

Подключайте пакеты функцией ds_library(), а не library(). Эта функция при необходимости устанавливает пакет, при сетевых сбоях автоматически повторяет попытку, а если основной репозиторий недоступен, берёт пакет из резервного. Большинство популярных пакетов собрано для WebR, но не все — см. раздел Важные замечания ниже.

Важные замечания

  • Это WebR, а не настольный R. Почти весь базовый R и многие пакеты CRAN работают, но некоторые пакеты, зависящие от системных библиотек или скомпилированного кода, могут быть недоступны. Если пакет не загружается, скорее всего, его ещё не собрали для WebR.
  • help() и ? недоступны. Чтобы посмотреть примеры использования функции, выполните example(functionName) или обратитесь к ссылкам на документацию выше.
  • Сессия R временная. Переменные и загруженные пакеты пропадают при перезагрузке страницы, поэтому нужные результаты скачайте командой /download. (История команд, напротив, сохраняется — см. Выполнение команд.)
  • Консоль и модули анализа используют один движок R. Пока в консоли идёт тяжёлое вычисление, встроенные анализы ждут его завершения, и наоборот.