2016-02-12 2 views
2

Как новичок R Я вытягиваю свои волосы, пытаясь отлаживать загадочные ошибки R. У меня есть csv, который содержит 150k строк, которые я загружаю в кадр данных с именем 'date'. Затем я использую lubridate для преобразования этого столбца символов в datetime в надежде найти минимальную/максимальную дату.Найдите даты, которые не могут разобрать в R Lubridate

dates <- csv[c('datetime')] 
    dates$datetime <- ymd_hms(dates$datetime) 

Выполнение этого кода я получаю следующее сообщение об ошибке:

Warning message: 
3 failed to parse. 

Я принимаю это как CSV может иметь некоторые Janky даты там и следующий пробег:

min(dates$datetime) 
max(dates$datetime) 

Оба они возвращают NA, что я предполагаю, это из нескольких сломанных дат, которые все еще хранятся в кадре данных. Я искал для быстрого исправления и даже попытался создать цикл foreach, чтобы определить даты проблемы, но не повезло. Что было бы простым способом определить 3 сломанные даты?

example date format: 2015-06-17 17:10:16 +0000 
+0

Вы можете проверить, соответствует ли формат. Также проверьте '? Guess_formats' – akrun

+1

Если вы сортируете по вектору datetime, будет ли NA быть либо в голове, либо в хвосте? – lawyeR

+0

@akrun Я попытался сделать это в excel путем импорта csv и проверки длины каждой ячейки и фильтрации для чего-то неуместного. Это ни к чему не привело, есть ли способ сделать это в R? Я попробовал guess_formats & parse_date_time, и оба они потерпели неудачу. –

ответ

4

Кредит Lawyer и Stibu из вышеприведенных комментариев:

  1. Я первый отсортировали сырой столбец CSV и сделал головы() & хвост(), чтобы найти которых 3 даты были вызывающую проблемы
  2. Альтернативно, which(is.na(dates$datetime)) был простым одним вкладышем, чтобы найти ответ.
+3

Это замечательно, но на самом деле не отвечает на общий вопрос. Что, если проблема в том, что персонаж «purpleElephant» находится в ваших данных? Это еще не NA, но все же непревзойден. Нам по-прежнему нужен способ просмотра предупреждений, предоставленных Lubridate. –

+0

Вопрос состоял в том, чтобы идентифицировать три сломанных дат, и это полностью соответствует этому. – psychometriko

Смежные вопросы