Благодаря увлечению «большими» данными аналитические инструменты приобрели популярность. Одним из таких инструментов является язык программирования R. В этой статье я покажу, как извлекать данные из текстовых файлов, файлов CSV и баз данных. Затем я покажу, как отправить эти данные на веб-сервер.
Вы можете быть удивлены, нужно ли мне заново изучать новый язык? Ответ — нет! Все, что вам нужно знать, это несколько команд.
Программисты из разных областей, которые работают над веб-приложениями на разных языках программирования, могут импортировать данные в R и после обработки экспортировать их в требуемом формате.
Примечание: если вы не знакомы с R, я рекомендую статью SitePoint о том, как установить R и RStudio . Он предоставляет основные команды на R и общее введение в язык. В этом посте рассматриваются команды, которые могут выполняться на терминале R без использования IDtu RStudio. Тем не менее, обработка больших наборов данных в терминале может оказаться сложной задачей для начинающих, поэтому я бы предложил использовать RStudio для расширенного опыта. В RStudio вы можете запускать те же команды в окне консоли.
Обработка текстовых файлов
Текстовый файл, присутствующий на вашем локальном компьютере, может быть прочитан с помощью слегка измененной команды read.table
. Поскольку он предназначен для чтения таблиц, вы можете установить разделитель на пустую строку («»), чтобы читать текстовый файл построчно:
file_contents = read.table("<path_to_file>", sep = "")
Примечание. <path_to_file>
, где вы видите угловые скобки, такие как <path_to_file>
, вставьте нужный номер, идентификатор и т. Д. Без скобок.
Путь к файлу также может быть относительным путем к файлу. Если ваши строки имеют неодинаковую длину, вы также должны установить fill = TRUE
. Результатом этой команды является фрейм данных в R.
Если ваш файл слишком велик, чтобы его можно было прочитать за один раз, попробуйте прочитать его пошагово, используя параметры skip
и nrow
. Например, чтобы прочитать строки 6–10 в вашем файле, выполните следующие команды:
connection <- file("<path_to_file>") lines6_10 = read.table(connection, skip=5, nrow=5) # 6-10 lines
Обработка файлов CSV
Файл CSV (значения, разделенные запятыми) — это файл, который буквально содержит значения, разделенные запятыми. Вы можете прочитать файл CSV, используя команду read.csv
:
file_contents = read.csv("<path_to_file>")
Параметр header
указывает, содержит ли файл CSV заголовки столбцов. По умолчанию установлено значение TRUE
. (Это также может быть указано при чтении текстовых файлов.) В случае, если у вас есть неравные столбцы в разных строках, вам также нужно установить значение fill
в TRUE
.
Для больших файлов вы можете пропустить строки аналогичным образом:
connection <- file("<path_to_file>") lines6_10 = read.csv(connection, skip=5, nrow=5) # 6-10 lines
Использование баз данных MySQL
Для подключения к базе данных вам нужна отдельная библиотека RMySQL
. Его можно установить с помощью следующей команды:
install.packages('RMySQL')
После установки необходимо активировать его, выполнив следующее:
library('RMySQL')
Предполагая, что ваша база данных работает, теперь вы можете выполнять запросы MySQL после установления соединения:
con <- dbConnect(MySQL(), user="root", password="root", dbname="nsso", host="localhost", port=8889)
Если вы используете MySQL через MAMP на Mac, вам нужно указать unix.socket
:
con <- dbConnect(..., unix.socket = "/Applications/MAMP/tmp/mysql/mysql.sock")
Чтобы сделать запрос MySQL, вам сначала нужно выполнить запрос, а затем сохранить данные во фрейме данных:
rs <- dbSendQuery(con, "SELECT * FROM my_table;") # Make sure you run a LIMIT if your query is too large data <- fetch(rs, n = -1)
Как только вы закончите с вашими запросами, вы можете отключить соединение с помощью команды dbDisconnect
:
dbDisconnect(con)
Читать данные в Интернете
Что если ваш источник данных находится в сети? Как вы читаете онлайн файлы? В R это можно сделать, просто изменив путь к файлу, который вы указали в команде чтения. Вам нужно использовать команду url
и указать URL в команде read.csv
. Например:
file_contents = read.csv(url("<file_URL>"))
Для базы данных host
может быть изменен для извлечения данных из базы данных на веб-сервере.
Экспорт данных
Как и read.csv
и read.table
, фрейм данных можно экспортировать в текстовый или CSV-файл с помощью команд write
:
write.csv(data_frame, file = "data.csv")
Чтобы экспортировать как текстовый файл, используя другой разделитель (скажем, вкладку), вы можете использовать команду write.table
:
write.table(data_frame, file = "data.txt", sep = "\t")
Обновление баз данных также просто и может быть выполнено с помощью команд UPDATE
и INSERT
MySQL.
Экспорт графиков
После того как вы обработали и нанесли на график свои данные в R, вы также можете экспортировать их! Команда png
или jpeg
сделает это за вас. В основном, это сохраняет сюжет, который в данный момент активен:
# Initiate Image png(filename="sample.png") # Make a plot plot(c(1,2,3,4,5), c(4,5,6,7,8)) # Save the plot dev.off()
В идеале, вы можете настроить вторую команду, чтобы сохранить необходимый график.
Экспорт данных в Интернет
Загрузка файлов в Интернет напрямую может быть сложной задачей, но вы можете экспортировать данные в Интернет, выполнив два действия: сохранить файл локально, а затем загрузить его в Интернет. Вы можете загрузить файл в Интернет с помощью запроса POST
через R, который можно эмулировать с httr
пакета httr
:
POST("<upload_URL>", body = list(name="<path_to_local_file>", filedata = upload_file(filename, "text/csv")))
Для более подробной информации, вот краткое руководство по пакету httr
.
Вывод
В последние годы R приобрел большую популярность среди людей, работающих со статистикой, и сейчас хорошее время для изучения этого замечательного языка. Он достаточно гибок для синхронизации с различными типами источников данных, и работа с R также очень проста, независимо от вашего опыта. Будем надеяться, что этот пост поможет вам начать с R!