Привет, мне дали электронную таблицу XL (... не моя вина, пожалуйста, продолжайте читать...).
Как вы, возможно, знаете, XL не очень хорошо работает с датой, временем и миллисекундами. Чтобы миллисекунды отображались в ячейке, вы должны выбрать специальный формат aaaa-mm-jj hh:mm:ss.000
Мне нужно загрузить этот лист XL в R
с XLConnect
(я не могу использовать другой пакет).
Как вы видете:
- Что в ФОРМУЛЕ ячейки
B2
есть2012-10-01 12:15:15
- То, что ОТОБРАЖАЕТСЯ в ячейке
B2
из-за моего формата,2012-10-01 12:15:15.447
- К вашему сведению, я указал базовое числовое значение ячейки
B2
вB3
Моя проблема в том, что я делаю
wb = loadWorkbook(currentFile)
dataFile <- readWorksheet(wb, sheet=c('Sheet1'),header=TRUE);
#or even when I specify the type (my real file is a 3 columns matrix)
dataFile <- readWorksheet(wb, sheet=c('Sheet1'),header=TRUE,
colTypes = c(XLC$DATA_TYPE.NUMERIC,XLC$DATA_TYPE.DATETIME,XLC$DATA_TYPE.NUMERIC),
dateTimeFormat='%Y-%m-%d %H:%M:%OS');
Я получаю data.frame
с 2012-10-01 12:15:15
БЕЗ МОИХ ДРАГОЦЕННЫХ МИЛЛИСЕКУНД
Тогда мой вопрос:
Что я могу сделать, чтобы убедиться, что R
загружает этот datetime
за миллисекунды (сразу, без того, чтобы я возился с загрузкой numeric
и потом конвертировал себя)
?readWorksheet
dateTimeFormat Формат даты/времени, используемый при преобразовании даты/времени. По умолчанию используется getOption(XLConnect.dateTimeFormat). Это должен быть спецификатор формата POSIX в соответствии с strptime, хотя еще не все спецификации реализованы, однако наиболее важные из них доступны. так что, возможно, вы SOL до следующего обновления. Требуется дополнительное расследование :-) - person Carl Witthoft   schedule 23.05.2013=A1-floor(A1,1)
, чтобы извлечь числовую часть, равную секундам... или, черт возьми, просто переформатируйте даты как их числовое значение и преобразуйте обратно вR
. - person Carl Witthoft   schedule 23.05.2013csv
, используйтеread.csv
и немного магии, чтобы преобразовать строки даты и времени в фактические даты. - person Carl Witthoft   schedule 23.05.2013