2012-02-17 4 views
2

У меня есть эти данные в CSV:R - Фондовый рынок данных из CSV для XTS

Date ALICORC1 ALT ATACOBC1 AUSTRAC1 CONTINC1 BVN DNT 
40886 5.8  0.1 0.9  0.28  5.45  38.2 1.11 
40889 5.8  0.1 0.88  0.28  5.37  37.7 1.04 
40890 5.8  0.09 0.87  0.27  5.33  37.4 0.99 
40891 5.7  0.1 0.85  0.27  5.3  37.5 0.91 

Эти акции закрытие цена перуанского фондового рынка, и я хочу, чтобы преобразовать их в XTS, так что я могу найти оптимальный портфель и прочее, но я не могу найти способ конвертировать этот CSV в xts. Я проверил ответ на многие вопросы здесь, но никто из них не работал.

Некоторые ошибки я получил это:

  • Index имеет XXXX плохих записей в строках данных
  • неоднозначных данных.

Может кто-нибудь мне помочь?

+4

Укажите, пожалуйста, код, который вы пробовали, и полученные вами точные ошибки. –

ответ

5

csv означает запятая -разделимые значения, поэтому макет, показанный в вопросе, не является csv. Будем считать, что данные действительно находятся в форме csv, а не в форме, отображающей вопрос. Если он действительно находится в форме, указанной в вопросе, а не csv, тогда опустите аргумент sep="," в read.zoo ниже. Также, если есть другие отклонения, вам может понадобиться изменить аргументы дальше. См. ?read.zoo и виньетка Reading Data in Zoo в пакете зоопарка.

Здесь мы используем read.zoo в пакете зоопарка, чтобы прочитать в данных как зоопарк объекта, z, а затем преобразовать его в XTS, x.

См. R News 4/1, который специально рассматривает обработку даты в датах Excel, отметив, что нам может понадобиться немного изменить код ниже, если используется версия Mac Excel (как описано там в ссылке).

library(xts) # this also loads zoo which has read.zoo 

toDate <- function(x) as.Date(x, origin = "1899-12-30") 
z <- read.zoo("myfile.csv", header = TRUE, sep = ",", FUN = toDate) 
x <- as.xts(z)