Допустим, мы на работе и получили данные в Excel.

Допустим, эта книга Excel содержит подмножество более широкого набора данных. Например, наш файл Excel может содержать:

  • список идентификационных номеров клиентов, которые нам нужно изучить, или
  • список дат, когда наши данные выглядят странно, и нам нужно выяснить, что пошло не так.

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

Давайте перейдем к date and time related example, учитывая мою недавнюю одержимость часовыми поясами. Нам дали файл с датами, который нужно изучить, и он выглядит так:

Мы хотим свернуть их в кавычки, разделенные запятыми строки, которые мы передадим в функцию c(). Это даст нам вектор символов. Когда у нас есть вектор символов, мы хотим преобразовать его в значения POSIXct, используя степень vectorisation!.

Раньше я бы смущенно сделал что-то вроде этого, заключив каждую дату в одинарные кавычки с запятой в конце каждой строки:

Но для этого требуется слишком много нажатий клавиш! Моя новая механическая клавиатура с CHERRY MX Brown keyswitches are rated for only 50 million keystrokes per switch. Я должен экономить на нажатиях клавиш!

Давайте использовать силу RStudio.

  1. Мы скопируем значения из столбца электронной таблицы и вставим их в новый скрипт в RStudio:

  1. Если мы используем клавиатуру ПК, удерживая нажатой Alt, щелкайте и перетаскивайте курсор в левую часть каждой строки, пока не дойдете до последней строки. Если мы используем Mac, нам придется немного погуглить ... но я могу только предположить, что мы должны использовать клавишу option вместо клавиши Alt!

  1. Давайте выделим весь вставленный текст построчно. Удерживая нажатой кнопку Alt+Shift, нажмите right arrow.

  1. Мы процитируем эти строки с помощью другого ярлыка - Shift+' (Shift и quotation mark key):

  1. Пока наш курсор все еще находится на всех строках последнего столбца, мы press the comma key:

  1. После того, как мы удалили надоедливую запятую в конце последней строки, мы получили несколько строк, разделенных запятыми в кавычках!

Теперь мы можем передать их функции c() и продолжить нашу жизнь. Например, теперь у нас есть это:

c("26/04/2019 08:00:00",
 "25/04/2019 21:30:00",
 "25/04/2019 22:00:00",
 "25/04/2019 18:45:00",
 "25/04/2019 14:40:00",
 "25/04/2019 22:00:00",
 "25/04/2019 16:00:00")
## [1] "26/04/2019 08:00:00" "25/04/2019 21:30:00" "25/04/2019 22:00:00"
## [4] "25/04/2019 18:45:00" "25/04/2019 14:40:00" "25/04/2019 22:00:00"
## [7] "25/04/2019 16:00:00"

Присваиваем его переменной:

date_time_str <- c("26/04/2019 08:00:00",
                  "25/04/2019 21:30:00",
                  "25/04/2019 22:00:00",
                  "25/04/2019 18:45:00",
                  "25/04/2019 14:40:00",
                  "25/04/2019 22:00:00",
                  "25/04/2019 16:00:00") 

Мы используем функцию dmy_hms() из lubridate для преобразования каждого элемента нашего вектора в POSIXct объекты. Поскольку мы находимся в Сиднее, Австралия, мы назначим каждому часовой пояс "Австралия / Сидней":

library(lubridate)
date_time_values <- dmy_hms(date_time_str, tz='Australia/Sydney')
print(date_time_values)
## [1] "2019-04-26 08:00:00 AEST" "2019-04-25 21:30:00 AEST"
## [3] "2019-04-25 22:00:00 AEST" "2019-04-25 18:45:00 AEST"
## [5] "2019-04-25 14:40:00 AEST" "2019-04-25 22:00:00 AEST"
## [7] "2019-04-25 16:00:00 AEST"

Ура!

А поскольку мы находимся в Сиднее, Австралия ...

Закончим на этом:

«Чертовски молодец!»

Джастин

Первоначально опубликовано на https://embracingtherandom.com 27 апреля 2019 г.