Конвертировать данные из CSV-файла в объект "xts" - PullRequest
4 голосов
/ 21 января 2011

У меня есть файлы CSV с датой в следующем формате: 25-августа-2004

Я хочу прочитать его как объект «xts», чтобы использовать функцию «periodReturn» в пакете quantmod.

Могу ли я использовать следующий файл для функции?

Symbol Series        Date Prev.Close Open.Price High.Price Low.Price

1       XXX     EQ 25-Aug-2004     850.00    1198.70    1198.70    979.00

2       XXX     EQ 26-Aug-2004     987.95     992.00     997.00    975.30

Направь меня с тем же.

Ответы [ 2 ]

3 голосов
/ 21 января 2011

Попробуй это. Мы избавляемся от неприятных столбцов и указываем формат индекса времени, затем конвертируем в xts и применяем функцию dailyReturn:

Lines <- "Symbol Series Date Prev.Close Open.Price High.Price Low.Price
1 XXX EQ 25-Aug-2004 850.00 1198.70 1198.70 979.00
2 XXX EQ 26-Aug-2004 987.95 992.00 997.00 975.30"

library(quantmod) # this also pulls in xts & zoo

z <- read.zoo(textConnection(Lines), format = "%d-%b-%Y",
    colClasses = rep(c(NA, "NULL", NA), c(1, 2, 5)))
x <- as.xts(z)
dailyReturn(x)

Конечно, textConnection(Lines) просто для того, чтобы оставить пример самодостаточным, и в действительности его заменили бы чем-то вроде "myfile.dat".

3 голосов
/ 21 января 2011

К сожалению, я не могу говорить за часть ts, но именно так вы можете преобразовать даты в правильный формат, который может быть прочитан другими функциями как даты (или время).Вы можете импортировать данные в data.frame как обычно ( см. Здесь, если вы пропустили ).Затем вы можете преобразовать свой столбец Date в класс POSIXlt (POSIXt), используя функцию strptime.

nibha <- "25-Aug-2004" # this should be your imported column
lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C") #temporarily change locale to C if you happen go get NAs
strptime(nibha, format = "%d-%b-%Y")
Sys.setlocale("LC_TIME", lct) #revert back to your locale
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...