Импорт даты из CSV в R - PullRequest
       4

Импорт даты из CSV в R

0 голосов
/ 09 ноября 2018

Я хочу импортировать файл Excel в r, и этот файл содержит столбец с датой и временем в следующей форме: «20.08.2018 16:32:20». Если я перехожу на стандартный формат в самом файле CSV, он выглядит так: «43332,68912». Если я читаю в файле с помощью «read_excel» R, эта дата выглядит так: «43332.689120370371»

Как я могу превратить текущий формат в формат даты в R?

Большое спасибо!

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

Хорошей практикой является не редактировать что-либо в файле .csv (или в excel) - поэтому рассматривать его только для чтения - и вносить изменения в сценарий (например, в R).

Давайте назовем ваш фрейм данных "my_df", а переменную datetime - "date".

library(readr)
library(magrittr)

my_df$date %<>% parse_datetime("%d.%m.%Y %H:%M:%S")

Редактировать: Пытаясь собрать воедино информацию из ваших комментариев, я создал файл excel с одним столбцом под названием STARTED с датой и временем в форме "20.08.2018 16:32:20" в виде Вы указываете в вопросе. Поскольку вам, кажется, нравится readxl:

library(readxl)
library(magrittr)

myData <- read_excel("myData.xlsx")

myData$STARTED %<>% parse_datetime("%d.%m.%Y %H:%M:%S")

Это тот же код, который я уже написал выше. Это дает:

# A tibble: 1 x 1
  STARTED            
  <dttm>             
1 2018-08-20 16:32:20

Если вы получаете только NA, ваши данные не в формате, указанном в вашем примере "20.08.2018 16:32:20"

0 голосов
/ 19 ноября 2018

После вашего обсуждения с @prosoitos похоже, что функция импорта не имеет смысла для вашего столбца даты:

Ваша строка данных примера в комментариях не содержит кавычек вокруг вашей строки даты. Это означает, что вы скопировали эти данные, открыв их с помощью Excel (или схожим образом), или ваш инструмент опроса не квалифицирует даты как строки. Вы открыли наш .csv в Excel, сохранили его как .xlsx и попытались импортировать результат в R? Это объясняет беспорядок, который вы получаете, поскольку Excel может попытаться интерпретировать строки дат и преобразовать их в какой-нибудь забавный формат Microsoft, который никто другой не использует.

Пожалуйста, не делайте этого, используйте необработанный CSV-файл, который никогда не использовался в Excel, и импортируйте его непосредственно в R.

Ваша функция чтения, очевидно, не понимает содержимого вашей переменной даты и, по-видимому, заменяет его на некоторое стандартное время Unix , которое является секундами с 1970 года. Однако, похоже, что эти отметки времени недействительны (43332 это что-то вроде полудня 1970/01/01), иначе вы могли бы легко преобразовать их в удобочитаемые даты.

Я предлагаю вам попробовать импортировать CSV с помощью:

read.csv("your_data.csv", header=TRUE, stringsAsFactors=FALSE)

Возможно, вам придется указать свой разделитель, например, sep = "\t" (для файла с разделителями табуляции), если это не пробел , который является разделителем по умолчанию для функции чтения. После этого даты в вашем фрейме данных представляют собой простые текстовые строки, и вы можете следить за тем, что сказал @prosoitos.

(Извините за добавление дополнительного ответа. Я бы прокомментировал ответ @prosoitos, но у меня недостаточно репутационных баллов.)

0 голосов
/ 09 ноября 2018

Считать CSV в R MyData

read.csv(file="TheDataIWantToReadIn.csv", header=TRUE, sep=",")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...