https://cran.r-project.org/doc/contrib/Short-refcard.pdf https://aakinshin.net/ru/posts/r-functions/
BOOK
https://www.r-bloggers.com/in-depth-introduction-to-machine-learning-in-15-hours-of-expert-videos/
help()
?rm #(только для некоторых стандартных функций)
Sys.setenv(LANG = "en")
cats <- 2
dogs <- 3
divide <- function(x, y) {
return(x/y)
}
returntwo <- function(x) {
X <- 2
x
}
returntwo(4)
[1] 4
Ничего не вышло! Почему не перезаписалась пременная x?
Так ничего не получится, потому что присваиваю значение в локальном окружении функции - на глобальное окружение переменных это никак не повлияет и при применении функции ничего нового не выведется. Если хочешь повлиять на глобальное окружение из локального применяй << (но это плохая практика - нагружается код, считается плохой практикой, можно запутаться во всевозможных влияниях внутреннего окружения функций на глобальное окружение R)
returntwo <- function(x) {
return(x <- 2)
}
Функция нормального распределения:
rnorm #где n - число генерируемых чисел
function (n, mean = 0, sd = 1)
.Call(C_rnorm, n, mean, sd)
<bytecode: 0x0000027e30125690>
<environment: namespace:stats>
rnorm(30, mean = 25, sd = 5) #где mean - среднее, sd - стандартное отклонение
[1] 26.78104 29.37611 24.49029 21.48213 19.55770 32.49970 20.63234 23.92941
[9] 30.16567 17.86763 30.24234 17.42370 30.59605 29.14559 21.18170 28.83171
[17] 29.76755 24.59607 22.92615 22.74490 19.51892 28.10343 30.71289 17.54392
[25] 23.91796 33.93699 26.21738 32.18606 17.34835 28.25054
Но не всегда придется обращаться к стандартным функциям, надо уметь писать свои
УДАЛИТЬ ВСЕ ПЕРЕМЕННЫЕ из глобального окружения*
rm(list = ls())
# При необходимости всегда можно получить справку по нужной функции
# Запомнить все аргументы каждой функции нереально - научиться пользоваться справкой жизненно необходимо в R
help()
?help
?help.search
?"<-"
?ls
?"function" # нек
?rm
?rnorm
# Если не помнишь название функции, то можно сделать поиск по ближайшим совпадениям через ??. Например:
??top
В Rstudio есть два режима:
* Batch - режим - чистый R
В Batch режиме все переменные, которые мы хотим вывести в печать надо заключать в функцию print
* Интерактивный режим в консоли Rstudio Консоль это делает автоматически
Для демонстрации будем проверять логические утверждения равенства значений (“==” - это знак равенства) Пример 1:
0.1 + 0.1 == 0.2
[1] TRUE
Что совпадает с нашим ожиданием
Пример 2
0.1 + 0.15 == 0.25
[1] TRUE
Что совпадает с нашим ожиданием
Пример 3
0.1 + 0.05 == 0.15
[1] FALSE
Получаем что-то странное
Эта особенность очень хорошо задокументирована в оф документации R и в Stackoverflow https://stackoverflow.com/questions/9508518/why-are-these-numbers-not-equal Есть стандартная автоматическая функция, которая позволяет преодолеть эту проблему - all.equal - она сравнивает “приблизительные” значения
В свое время была опубликована одна из веховых статей David Goldberg “What every computer scientist should know about floating-point arythmetic”
https://www.itu.dk/~sestoft/bachelor/IEEE754_article.pdf