У меня есть несколько CSV-файлов 1 для каждого года с 2001 по 2018 год, каждый со столбцом даты. Все они в формате M / D / Y в Excel. Когда я читаю файлы в R с помощью
read.csv(x, stringsAsFactors = FALSE)
, каждый файл правильно преобразуется в формат ymd для столбца даты, за исключением года 2018, который сохраняет его в том же формате m / d / y.
Это проблема, когда я пытаюсь перенести даты в Lubridate, потому что формат m / d / y несовместим.
Я не уверен, почему эта проблема возникает только в 2018 году.
Я попытался скопировать и вставить даты в числовой формат Excel и импортировать их в R с помощью read.csv. Я скопировал и вставил в текстовом формате. Я также открыл новый файл Excel и CSV и скопировал данные в эти файлы. Я также вручную напечатал даты 2018 года и импортировал их в R с помощью read.csv.
Это можно исправить с помощью:
y <- read.csv(g, stringsAsFactors = FALSE) %>%
as.tibble()
y$date <- gsub("/", "-", y$date)
y$date <- parse_date_time(y$date, orders = c('mdy', 'ymd'))
y$date <- as_date(y$date)
Но я нахожу это смущающим и хотел бы знать, почему Excelделает это только для 2018 года, и если другие сталкивались с этим.
Это пример того, как выглядит мой файл 2001.csv после
y <- read.csv(x, stringsAsFactors = FALSE) %>%
as.tibble()
y
# # A tibble: 24 x 4
# date species Site_Code number
# <chr> <chr> <int> <int>
# 1 2001-08-11 WN 23 0
# 2 2001-10-12 WN 23 0
# 3 2001-01-11 EEE 27 0
И это то, что 2018.csvПосле прочтения файл выглядит так же, как указано выше:
# A tibble: 84 x 4
date species Site_Code number
<chr> <chr> <int> <int>
1 4/16/2018 EEE 23 0
2 4/30/2018 EEE 23 1
3 5/7/2018 EEE 23 0
Сообщения об ошибках не генерируются