Быстрое погружение

Онлайн запуск R

  • www.r-fiddle.org
  • www.tutorialspoint.com/execute_r_online.php

Установка

  • сама программа https://www.rstudio.com/products/rstudio/download2/
  • пакеты для нее устанавливаются так install.packages("PackageName")
  • необходимые библиотеки загружаются так library(LibraryName)

Комманды, которые нужно вбить

set.seed(123)

# задаем данные: выборка из 100 значений
# генерируем выборку 1
v1 = rnorm(100,50,10)
v1 # смотрим, что получилось
# генерируем выборку 2
library(sn) # если библиотека не установлена - ставим: install.packages("sn")
v2 = rsn(100,50,10,5)

# смотрим распределение значений
hist(v1)

# или более детально
hist(v1,n=25)

# проверяем нормальность: как интерпретировать эти тесты?
# настройка, чтобы было рядом два графика
par(mfrow=c(1,2))
# 1
qqnorm(v1, main="v1")
qqline(v1,col="red")
shapiro.test(v1)
# 2
qqnorm(v2, main="v2")
qqline(v2,col="red")
shapiro.test(v2)

# можно ли сделать данные более "нормальными"?
# иногда надо, если дальше работать с предположением о нормальном распределении
# Box-Cox transformation (https://www.isixsigma.com/tools-templates/normality/making-data-normal-using-box-cox-power-transformation/)
library(car)
v2_transformed = bcPower(v2, powerTransform(v2)$lambda)
shapiro.test(v2_transformed)

# привести данные к общей размерности (среднее 0, ст. откл. 1)
v1_scaled = scale(v1)

# встроенные тестовые данные: морфологические данные ирисов разного вида
iris
# например, длина лепестков
iris$Petal.Length
iris[,3]

# смотрим значения всех переменных для ириса №1 (строка таблицы №1)
iris[1,]

# смотрим 2,4,5 переменные 10-20 строк
iris[10:20,c(2,4,5)]
10:20
c(2,4,5)

# строим графики попарно x от y
pairs(iris)
plot(iris[,3:4],col=iris[,5])
pca = princomp(iris[,1:4])
plot(pca$scores[,1:2],col=iris[,5])
pca$loadings

# считаем корреляции
cor(iris[,1:4])
cor.test(iris[,1], iris[,4])
library(corrplot)
corrplot(cor(iris[,1:4]), method="ellipse")