Как удалить дубликат отметки времени в R со столбцом, имеющим дату и время и зону - PullRequest
0 голосов
/ 12 июня 2018

У меня есть фрейм данных в R с несколькими столбцами.Я копирую один из столбцов ниже.Тип столбца - целое число во фрейме данных, а +00.00 представляет время UTC.

D-T-Z                               

06/04/2018 16:30:01 +00:00              
06/05/2018 20:15:00 +00:00              
06/05/2018 12:45:34 +00:00              
06/05/2018 20:15:00 +00:00

Когда я использую библиотеку (doBy) и команду Mach1 [firstobs (Mach1 [, 16]),].Я получаю результат ниже

  D-T-Z
06/04/2018 16:30:01 +00:00              
06/05/2018 20:15:00 +00:00              
06/05/2018 12:45:34 +00:00

Я хочу отфильтровать фрейм данных и получить отдельные записи для разных дат.Поскольку время отличается, оно возвращает две записи за 05.06.2008, тогда как я хочу вернуть только одну запись.Не имеет значения, какое время возвращается.Есть ли другой способ сделать это?

Что если фрейм данных имеет два столбца?

date                                               Hour

1 2018-06-04 325.2 2 2018-06-05 329.5 3 2018-06-06 329,7 4 2018-06-07 329,9 5 2018-06-08 333,2 6 2018-06-13 356,0 7 2018-06-14 364,8 8 2018-06-15 372,6 9 2018-06-15 381,9 10 2018-06-21 383,3 11 2018-06-22 394,5

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете использовать lubridate:

library(tidyverse)
library(lubridate)

data_frame(date = c("06/04/2018", "06/05/2018", "06/05/2018", "06/05/2018"), time = c("16:30:01", "20:15:00", "12:45:34", "20:15:00"), zone = c("+00:00", "+00:00", "+00:00", "+00:00")) -> x

# all data in one column
x %>% select(date) %>% unique()

# data in separate columns using lubridate
apply(x, 1, function(x) paste(x, collapse = " ")) %>% dmy_hms -> y
y %>% as_date() %>% data_frame() %>% unique()

выход 1:

# A tibble: 2 x 1
  date      
  <chr>     
1 06/04/2018
2 06/05/2018

выход 2:

# A tibble: 2 x 1
  .         
  <date>    
1 2018-04-06
2 2018-05-06
...