Ввод данных в CSV на основе Excel и функция as.Date (), вызывающая проблемы - PullRequest
0 голосов
/ 04 октября 2018

Таким образом, я использовал Excel для ручного ввода данных для файла CSV, который я читаю в R Studio, используя read_csv.

Это чтение в порядке, моя дата в этом формате 31/07/2013

, поэтому я использовал это для преобразования

patients$Date <- as.Date(patients$Date, "%d/%m/%Y")

Все это кажется простым.Однако для второго запущенного набора данных он не преобразует все значения и преобразует некоторые в NA.

Часть этого происходит из Excel в формате встроенных чисел.Какую дату выполнения в трех направлениях

  1. Общие сведения: насчитывается дней 1900/01/01
  2. Короткие: 31.07.2013
  3. Длинные: июль31 2013

Дело в том, что на этот раз я оставил все как есть.Так что я ожидал, что у меня возникнут проблемы.Мой набор данных состоит из нескольких тысяч строк, и as.Date(), по-видимому, несистематически выделяет некоторые значения.Вручную, изменения в Excel не проявляются в R. Как я могу найти эти значения и вручную изменить их в R.

Я также поставил два столбца Года и Месяца рядом с ним для справки (как яЯ подумал, что у меня может быть эта проблема на этот раз).

   Year Month   Date    Site    Category    Services    Count
2013    July    31/07/2013  K   Test    Laboratory  1642
2013    July    31/07/2013  K   Test    X-Ray   16

Мне не требуется в тот день в моем текущем формате 31/07/2013, поэтому может работать с 07/2013

Поэтому я используюэто для фильтрации моих данных

patients %>%
  group_by(Date)%>%
  filter(Category == "Registration", Site == "K")

Таким образом, я получаю следующий вывод

Year Month  Date       Site  Category     Services                Count
   <int> <chr>  <chr>      <chr> <chr>        <chr>                   <int>
 1  2013 July   31/07/2013 K   Registration Old Registration Cld       25
 2  2013 July   31/07/2013 K   Registration Old Registration Male     155
 3  2013 July   31/07/2013 K   Registration Old Registration Female   445
 4  2013 July   31/07/2013 K   Registration New Registration Child     24
 5  2013 July   31/07/2013 K   Registration New Registration Male     106

И как только я применяю patients$Date <- as.Date(patients$Date, "%d/%m/%Y"), некоторые из них показывают, как показано ниже ... НО не все из нихпоскольку тип столбца в таблице был изменен на Date Так что это сработало в некоторой степени.

2017 June  NA         K   Registration Old Registration Female   351
2  2017 June  NA      K   Registration New Registration Child     20
3  2017 June  NA      K   Registration New Registration Male      66
4  2017 June  NA      K   Registration New Registration Female   117
5  2017 June  NA      K   Registration Staff Registration         37
6  2017 June  NA      K   Registration Free  Registration          7
> 

Есть ли способ сортировки этого?

И какое программное обеспечение мне следует использовать в будущем для управления калькуляцией Open Office в CSV, похоже, не лучше.Нужен ли мне просто менеджер CSV, чтобы избежать проблем с Excel?

Помощь будет высоко ценится

Приветствия


1 Ответ

0 голосов
/ 05 октября 2018

Привет всем (два человека, которые читали это, ха!)

Так что я разобрался в проблеме.Очень простая ошибка

Однако сначала я начну с короткого стихотворения

Тридцать дней - сентябрь, апрель, ноябрь и июнь;У всех остальных тридцать один, за исключением одного февраля, и в нем двадцать восемь дней ясно и двадцать девять в каждом високосном году.31 числа месяца.Я должен был понять, что даты, преобразованные в АН, систематически относятся к месяцам, у которых нет 31 дня.

...