Допустим, мы на работе и получили данные в 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
.
- Мы скопируем значения из столбца электронной таблицы и вставим их в новый скрипт в RStudio:
- Если мы используем клавиатуру ПК, удерживая нажатой
Alt
, щелкайте и перетаскивайте курсор в левую часть каждой строки, пока не дойдете до последней строки. Если мы используем Mac, нам придется немного погуглить ... но я могу только предположить, что мы должны использовать клавишуoption
вместо клавишиAlt
!
- Давайте выделим весь вставленный текст построчно. Удерживая нажатой кнопку
Alt+Shift
, нажмитеright arrow
.
- Мы процитируем эти строки с помощью другого ярлыка -
Shift+'
(Shift
иquotation mark key
):
- Пока наш курсор все еще находится на всех строках последнего столбца, мы
press the comma key
:
- После того, как мы удалили надоедливую запятую в конце последней строки, мы получили несколько строк, разделенных запятыми в кавычках!
Теперь мы можем передать их функции 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 г.