Простой пример визуализации данных в R

Что-то давно никто не писал тут, походу все в отпусках. Раз так, то позволю себе написать пост про применение R для построения графиков. Данные будут взяты из предыдущего поста. Для этого можно пройти на страницу Wiki, скопировать и сохранить табличку в csv file: link.

Считываются данные одной строкой:


data <- read.table("./AnscombeQuartet.csv", header = TRUE, sep =",")

После этого все столбцы доступны по соответствующему header name:

data$x1

Далее можно проверить статистики, соответствуют ли они заявленным значениям.
Сделать это можно двумя способами:
  1. Применить к каждому столбцу функцию: mean(data$x1), var(data$x1), ....
  2. Либо воспользоваться функцией sapply(). Это некий аналог функции map в функциональных языках программирования.
Мы воспользуемся вторым способом 
(sapply(data, mean); sapply(data, var)):


Все статистики совпадают с заявленными. Теперь построим графики:
Если нужно построить всего один график, то делается это очень просто;

plot(data$x1, data$y1, xlab = "x", ylab = "y") #xlab, ylab add label names

Но нам нужно пробежаться по всем столбцами и уместить все 4 графика в одну фигуру. Это можно сделать в цикле:

par(mfrow=c(2,2), mar=c(2.0, 1.5, 1.5, 1.5), oma = c(2,2,2,2), pch = 16)
for(i in 1:4){
  x = eval(parse(text = paste( "data$x", i, sep="" )))
  y = eval(parse(text = paste( "data$y", i, sep="" )))
  plot( x, y )
  abline( lm(y ~ x) )
  grid( 10,10 )
}

Получаем график (на всякий случай в высоком разрешении: URL):



Пояснения:
Вообще в R очень и очень богатые графические возможности (помимо статистики и более 5000 packages). Даже поддерживаются несколько парадигм, например есть ggplot2

Из SAS R code можно запустить очень просто, подробное описание есть ТУТ.

Весь R код использованный при написании поста можно найти ТУТ.

Ярлыки: