Очень часто (на самом деле, всегда) для работы с данными предустановленных библиотек – тех, которые были автоматически установлены вместе с R – бывает недостаточно. Поэтому необходимые библиотеки нужно устанавливать самостоятельно. Для этого используется функция install.packages()
. Для примера установим библиотеку foreign
.
install.packages("foreign")
Важно: название библиотеки нужно всегда указывать в кавычках. Если ввести название без кавычек, R не найдет библиотеку и выдаст ошибку (Error in install.packages : объект ‘foreign’ не найден).
Иногда при установке библиотек можно столкнуться с проблемой: R пишет, что не может сохранить установочные файлы, так как нет доступа к нужной папке. Это обычно возникает в случае, если мы работаем в учетной записи, которая не является учетной записью администратора. Например, на компьютере есть пользователь Administrator (с неограниченными правами, в том числе по установке программ) и Student (с ограничениями). Решить проблему можно следующим образом: закрыть RStudio, щелкнуть по значку RStudio правой клавишей и выбрать “Запуск от имени администратора”. После этого библиотеки должны устанавливаться нормально.
Для того чтобы использовать функционал установленной библиотеки, надо сначала к ней обратиться –иначе R не будет понимать, откуда брать запрашиваемые функции и писать “Ошибка: не могу найти функцию …”. Сделать это можно так:
library(foreign)
Здесь уже можно вводить название библиотеки без кавычек.
Рано или поздно при работе в R у нас появится необходимость загружать или сохранять данные. Чтобы загрузить данные из какого-нибудь файла Excel, нам потребуется сообщить R, где этот файл находится, то есть прописать путь к файлу. Обычно путь выглядит достаточно громоздко, например, так: C:/User/Student/Документы/Мама-я-программист/данные.xls
. Поэтому, скорее всего, мы захотим поступить проще – сообщить R, с какой папкой мы хотим работать, а затем просто указывать названия нужных файлов.
Папка, с которой работает R (откуда он запускается), называется рабочей. Узнать, какая папка является рабочей, можно так:
getwd() # wd -- working directory
## [1] "/home/oem/Рабочий стол/lect1-03-11"
Если мы хотим изменить рабочую папку, то поступаем так:
setwd("C:/path/to/my/new/folder")
Теперь R будет видеть, что файлы, которые мы собираемся открыть, лежат в указанной папке folder. И сохранять файлы он тоже будет в эту папку.
Базовые операции:
12 + 18
## [1] 30
5 * 3
## [1] 15
2 ^ 3 # возведение в степень
## [1] 8
sqrt(16) # извлечение квадратного корня
## [1] 4
16 ^ (1/4) # для корней степени больше 2
## [1] 2
Округление:
round(4/3) # округление (до целой части)
## [1] 1
round(4/3, 2) # до второго знака после запятой
## [1] 1.33
Математические константы и функции:
pi
## [1] 3.141593
exp(1) # константа e
## [1] 2.718282
exp(2) # e^2
## [1] 7.389056
log(exp(1)) # log - натуральный логарифм
## [1] 1
log10(100) # log10 - десятичный логарифм
## [1] 2
log(4, base = 2) # можем указать основание логарифма (base)
## [1] 2
Кто забыл про логарифмы: см. здесь.
Названия переменных в R могут содержать буквы, цифры, точки и знаки подчеркивания, при этом название переменной не может начинаться с цифры. Название переменной не должно совпадать со служебными словами (операторами) в R: if
, else
, for
, while
и другимим.
Оба оператора <-
и =
используются для присваивания, но <-
является основным в R и используется чаще. А точнее, всегда :)
x <- 3
x
## [1] 3
Мы можем изменить значение переменной и сохранить ее под тем же именем:
x <- x + 3
x
## [1] 6
Основными типами переменных в R являются:
Важно: В дробных числах в R в качестве разделителя используется точка.
Создадим переменную x1 и присвоим ей значение 9.5.
x1 <- 9.5
is.numeric(x1) # проверим, является ли числом
## [1] TRUE
is.integer(x1) # проверим, является ли целым числом
## [1] FALSE
is.character(x1) # проверим, является ли текстовой переменной
## [1] FALSE
is.logical(x1) # проверим, является ли логической переменной
## [1] FALSE
Создадим переменную x2:
x2 <- "welcome"
Узнаем, какого она типа:
class(x2)
## [1] "character"
Важно: Если забыли, что делает та или иная функция, можно спросить это у R:
?class # так
Или так:
help(class)
Тип переменной можно менять. Например, превратим строку “2” в число 2:
two <- "2"
as.numeric(two)
## [1] 2
Логические переменные легко превращаются в числовые:
u <- TRUE
e <- FALSE
as.numeric(u)
## [1] 1
as.numeric(e)
## [1] 0
Конечно, не у любой переменной мы можем поменять тип. Например, строку “abc” превратить в число не получится:
as.numeric("abc")
С числовыми переменными можно делать то же, что и с числами:
a <- 25
b <- 15
sum_ab <- a + b # складывать или вычитать
sum_ab
## [1] 40
prod_ab <- a * b # умножать или делить
prod_ab
## [1] 375
power_ab <- a ^ b # возводить в степень и так далее
power_ab
## [1] 9.313226e+20
e
здесь - это число 10. Запись 9.313226e+20
означает, что число 9.313226 надо умножить на 1020. Если, напротив, R нужно было бы выдать очень маленькое число, 10 стояло бы в отрицательной степени:
2/23789
## [1] 8.407247e-05
Что можно делать с текстовыми переменными? Например, в текстовых переменных можно заменять одни символы на другие. Для этого существует функция sub()
.
group <- "group#1 group#2 group#3"
sub("#","-", group) # (что заменяем, на что заменяем, где заменяем)
## [1] "group-1 group#2 group#3"
Однако функция sub()
позволяет изменить только первое совпадение. Для того, чтобы заменить все встречающиеся в тексте символы, нужно воспользоваться gsub()
:
gsub("#","-", group) # gsub - от global sub
## [1] "group-1 group-2 group-3"
Необходимы для проверки или формулировки условий.
x <- 2
y <- 10
Привычные выражения:
x > y
## [1] FALSE
x < y
## [1] TRUE
x <= y
## [1] TRUE
x == y # для проверки условия равенства - двойной знак =
## [1] FALSE
Менее привычные:
x != y # отрицание равенства
## [1] TRUE
x & y < 5 # и (одновременно x и y)
## [1] FALSE
x | y < 10 # или (хотя бы один из x и y)
## [1] TRUE