Представление дат в формате POSIX

#datetime #r #file-io #posix #time-series

#datetime #r #файл-ввод-вывод #posix #временные ряды

Вопрос:

Я пытаюсь использовать пакет R timeSeries для чтения CSV-файлов.

Это код, который я пытаюсь запустить:

 prices <- readSeries(file='A2006-2011.csv',head=T,sep=",",format="%m/%d/%Y")
  

Однако он не распознает дату в формате csv (ниже приведены первые несколько ее строк)

 Date    Open    High    Low Close   Volume  Adj.Close
4/4/2011    45.07   45.41   44.36   44.83   2133900 44.83
4/1/2011    44.88   45.48   44.78   45.14   2212300 45.14
3/31/2011   44.92   45.02   44.46   44.78   2194900 44.78
3/30/2011   44.79   45.17   44.65   45.09   2514100 45.09
  

и выводится следующее предупреждение:

 Warning message:
In readSeries(file = "A2006-2011.csv", head = T, sep = ",", format = "%m/%d/%Y") :
  Conversion of timestamps to timeDate objects produced only NAs.
  Are you sure you provided the proper format with argument 'format'
  or in the header of your file ?
  

Я буду очень признателен, если кто-нибудь сможет мне в этом помочь.

Комментарии:

1. Правильно ли, что вы используете запятую в качестве разделителя полей, даже если в вашем файле, похоже, нет запятых?

Ответ №1:

Честно говоря, я бы просто прочитал таблицу в Date виде строк, а затем произвел быстрое преобразование. Например,

 > x = c("4/4/2011", "4/4/2011", "3/31/2011", "3/30/2011")
## In your case you would have prices$Date = as.Date(prices$Date, ...
> as.Date(x, "%m/%d/%Y")
[1] "2011-04-04" "2011-04-04" "2011-03-31" "2011-03-30"
  

Комментарии:

1. Благодаря вам я действительно понял это. Даже если даты в файле выглядят как «»4/4/2011», когда вы читаете его в R, они становятся «2011-04-04″. Поэтому, если кто-либо столкнется с той же проблемой с файлами данных csv, загруженными с yahoo, правильный способ ввода даты в формате format=»%Y-%m-%d».

Ответ №2:

Попробуйте этот пакет: speedR в https://r-forge.r-project.org/projects/speedr. Это визуальный импортер данных и поддерживает классы Date и POSIXct. Также вы можете использовать это для визуальной фильтрации существующих R-объектов из рабочей области.