Благодаря увлечению «большими» данными аналитические инструменты приобрели популярность. Одним из таких инструментов является язык программирования 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!
