разделение данных по месяцу, дню, году и часу в R - PullRequest
0 голосов
/ 14 марта 2020

У меня есть два столбца во фрейме данных: первый - это потребление воды, а второй - для даты + час. например Значение Время 12.2 01.01.2016 1:00 11.2 01.01.2016 2:00 10.2 01.01.2016 3: 00

Данные за 4 года, и я хочу создать отдельные столбцы для месяца, даты, года и часа.

Буду признателен за любую помощь

1 Ответ

1 голос
/ 14 марта 2020

Мы можем преобразовать в Datetime и затем извлечь компоненты. Мы предполагаем, что формат столбца «Время» равен «дд / мм / гггг Ч: М» (если он отличается, т. Е. «Мм / дд / гггг Ч: М», измените значение dmy_hm на mdy_hm)

library(dplyr)
library(lubridate)
df1 %>% 
  mutate(Time = dmy_hm(Time), month = month(Time), 
   year = year(Time), hour = hour(Time))
#  Value                Time month year hour
#1  12.2 2016-01-01 01:00:00     1 2016    1
#2  11.2 2016-01-01 02:00:00     1 2016    2
#3  10.2 2016-01-01 03:00:00     1 2016    3

В base R мы можем либо использовать strptime или as.POSIXct, а затем использовать либо format, либо извлечь компоненты

df1$Time <- strptime(df1$Time, "%d/%m/%Y %H:%M")
transform(df1, month = Time$mon+1, year = Time$year + 1900, hour = Time$hour)
#  Value                Time month year hour
#1  12.2 2016-01-01 01:00:00     1 2016    1
#2  11.2 2016-01-01 02:00:00     1 2016    2
#3  10.2 2016-01-01 03:00:00     1 2016    3

data

df1 <- structure(list(Value = c(12.2, 11.2, 10.2), Time = c("1/1/2016 1:00", 
"1/1/2016 2:00", "1/1/2016 3:00")), class = "data.frame", row.names = c(NA, 
-3L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...