Документ взят из кэша поисковой машины. Адрес оригинального документа : http://tukachev.flogiston.ru/blog/?tag=r
Дата изменения: Unknown
Дата индексирования: Sat Apr 9 22:35:34 2016
Кодировка: UTF-8
Tag: R

R-советы: Экономим время и место на диске путем сжатия файла данных

No Comments

Начинания с R 2.10 можно читать данные прямо из текстового файла, сжатого с помощью GZIP или других программ для архивации файлов. Сжатие большого файла данных, безусловно, может сэкономить дисковое пространство: для файла, содержащего в основном цифры, 50% + уменьшение размера файла является типичным. Но не приведет ли экономия пространства к тому, что придется платить в скорости, когда дело дойдет до чтения файла с данными для анализа? Давайте попробуем это проверить.

Во-первых, сгенерируем матрицу размером 10 млн. строк и 1000 столбцов, заполненную случайными числами, и сохраним ее в отдельный файл: More

Устнавливаем пакеты в новой копии R (на другом компьютере)

No Comments

Представим ситуацию, что у вас есть домашний и рабочий компьютер. На домашнем компьютере установлен R и все используемые вами пакеты к нему. На рабочем компьютере установлена свежая версия R, но нет всех пакетов, которые вы постоянно используете. Можно по памяти установить недостающие пакеты на рабочем компьютере, но есть способ проще:

1. На домашнем компьютере получаем полный список установленных пакетов
pkgList <- installed.packages(priority=»NA»)[,»Package»]

2. Сохраняем объект pkgList в текущем рабочем каталоге (воспользуйтесь командой getwd(), чтобы узнать текущий рабочий каталог)
saveRDS(pkgList, «pkg.Rds»)

3. На рабочем компьютере запускаем R (предварительно скопировав файл pkg.Rds в необходимый каталог) и выполняем команду:
install.packages(readRDS(«pkg.Rds»))

Теперь на домашнем и рабочем компьютерах у вас одинаковый набор пакетов.

Комментируем объекты в R

No Comments

В R есть замечательная функция сomment(), которая позволяет запросить или установить комментарий для объекта. Как правило, комментарий полезно установить для набора данных.

Проверим, есть ли комментарий у объекта. Запрос делается так:
> comment(data)
NULL

У объекта data отсутствует такой атрибут, как комментарий.
Установим комментарий:
> comment(data) <- «Мои данные для очень важного научного открытия!»

Запросим вывод комментария:
> comment(data)
[1] «Мои данные для очень важного научного открытия!»

Изучаем R: подборка книг на русском языке

No Comments

Для тех, кто еще только собирается начать изучение R, но не владет английским, я сделал небольшую подборку книг:

1. Роберт И. Кабаков «R в действии. Анализ и визуализация данных на языке R»

R в действии

«R в действии» — это руководство но обучению этому языку с особым вниманием к практическим задачам. В данной книге представлены полезные примеры статистической обработки данных и описаны изящные методы работы с запутанными и неполными данными, а также с данными, распределение которых отлично от нормального и с которыми трудно справиться обычными методами. Статистический анализ — это только одна сторона дела. Вы также овладеете обширными графическими возможностями для визуального исследования и представления данных.

Ознакомительные материалы книги Кабаков Р.И. R в действии. Анализ и визуализация данных в программе R / пер. с англ. П. Волковой. М.: ДМК Пресс, 2014. 580 с. в электронном виде (PDF): More

Геолокация участников тестирования

No Comments

Сервис виртуальных исследований Virtualexs.ru позволяет сохранять IP-адрес участника опроса (тестирования). Это дает возможность определить географическое положение участника. Попробуем нанести на карту эти данныe.

# Требуемые библиотеки
library(RCurl)
library(maps)
library(mapdata)
library(rgeolocate)
library(ggplot2)

# Загрузим данные
myfile <- «https://dl.dropboxusercontent.com/u/33111025/ip_data.csv»
myfile <- getURL(myfile, ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
mydata <- read.csv(textConnection(myfile), header=TRUE, stringsAsFactors=FALSE)

# Соберем данные по IP-адресам и определим по ним координаты участника

file <- system.file(«extdata»,»GeoLite2-City.mmdb», package = «rgeolocate»)
ipdata <- maxmind(mydata$VExS_ip, file, fields = c(«country_name», «country_code»,
«city_name», «longitude», «latitude»))

# Построим карту
plot.new()
png(file=»world.png»,width=600,height=400)
map(«worldHires»)
map.axes()
for (i in 1:length(ipdata)) {
points(ipdata$longitude, ipdata$latitude, col=rgb(red=0.2, green=0.2, blue=1.0, alpha=0.1),pch=20)
}
dev.off()

Первый способ

Первый способ

# второй способ

geomap1 <- ipdata[,c(«latitude», «longitude»)]
world_map<-map_data(«world»)
world_map <- subset(world_map, region != «Antarctica»)
gg <- ggplot(world_map)
gg <- gg + geom_map(dat=world_map, map = world_map,
aes(map_id=region), fill=»white», color=»gray70″)
gg <- gg + geom_point(data=geomap1, aes(longitude, latitude),
colour=»red», alpha=1/10, size=2)
gg <- gg + theme_bw()
print(gg)

Второй способ

Второй способ

 

 

Статистика блога

No Comments

Ранее я уже рассказывал о том, как можно считывать данные о посещаемости сайта и визуализировать их с помощью R. Обновленный вариант, реализованный с помощью языка разметки R Markdown: https://beta.rstudioconnect.com/psych/BlogStat/BlogStat.html

RMarkdown (Rmd файл) — это обычный md-файл с некоторыми добавками, которые включают в себя код R и некоторые опции (см. мой Rmd).

Хоп-Хей-NA-NA-NA, или работаем в R с пропущенными значениями

No Comments

Любой исследователь сталкивался с ситуацией, когда собранные данные будут неполными в силу ряда причин: пропуски вопросов респондентами, ошибки при вводе данных или их кодировке и т.љп. Пропущенные данные в R обозначаются NA (not available ? нет в наличии). Заметим, что недопустимые значения обозначаются как NaN (not a number ? не является числом). Обозначение NA для пропущенных значений используется как текстовых, так числовых данных. Как проверить данные на наличие пропущенных значений? Предположим, что у нас имеется следующие данные:

name <- c(«Катя», «Дима», NA)

sex <- c(«female», «male», «female»)

age <- c(17, 21, NA)

iq < — c(128, 115, 100)

data <- data.frame(name, sex, age, iq)

Посмотрим на наш маленький набор данных: More

Older Entries