2016-10-15 2 views
0

Я борюсь с некоторыми базовыми функциями xts. Я читаю файл данных CSV и пытаюсь построить данные с помощью функции candleChart() (из пакета quantmod). Я испытываю некоторые проблемы после преобразования моего data.frame в объект xts из-за летнего времени.Преобразование Dataframe в xts: проблема с летней экономией и NA

В основном, данные являются OHLC из валютной пары EUR/USD в течение одной минуты - таймфрейма. В этом году летнее время было выполнено 27 марта 2016 года с 02:00 до 03:00. После преобразования data.frame в xts 60 индексов в этом временном окне отсутствуют (NA).

Ниже вы найдете код. Я также добавил data file. Есть ли простой способ исправить преобразование данных, не теряя ничего?

forexData <- read.csv(fileName, sep = ".", dec = ",") 
#View(forexData) 

dataSerie <- xts(forexData[,2:6], order.by=as.POSIXct(forexData[,1], tz="")) 

# Checking if data index contains "NA"s and save index where NA are located 
index_NA <- which(is.na(index(dataSerie))) 

if(length(index_NA) == 0) { 
    candleChart(dataSerie, name="First Plot", subset="last 3 weeks", bar.type="ohlc") 

} else { 
    print("!!! Warning !!! - Data index contains NAs") 
} 
+0

Похоже, ваши десятичные отформатированы с запятой (''); поэтому добавьте 'dec =", "' к вашему вызову 'read.csv':' forexData <- read.csv (fileName, sep = ".", dec = ",") '. Это может быть не ваша единственная проблема, но это, безусловно, хорошее начало. – Abdou

+0

Thx много Abdou, на самом деле это была проблема. Я решил это и установил dec на «,» все пошло нормально ... но я застрял в следующей проблеме: – sisqokc

+0

Пожалуйста, добавьте ошибку со следующего проблема на ваш вопрос, чтобы кто-то мог помочь. – Abdou

ответ

0

Заголовок вашего CSV является:

TimeUTC.Open.High.Low.Close.Volume 

Таким образом, столбец временной метки, как представляется, в UTC, который не имеет летнее время. Таким образом, вы должны указать часовой пояс, как UTC в вызове к as.POSIXct:

dataSerie <- xts(forexData[,2:6], order.by=as.POSIXct(forexData[,1], tz="UTC")) 
Смежные вопросы