Преобразовать данные из файла CSV в объект «XTS»
-
16-10-2019 - |
Вопрос
У меня есть файлы CSV, которые имеют дату в следующем формате: 25-августа-2004
Я хочу прочитать его как объект «xts», чтобы использовать функцию «Период» в пакете 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
Направляйте меня с тем же.
Решение
К сожалению, я не могу говорить за ts
Часть, но именно так вы можете преобразовать свои даты в правильный формат, который можно прочитать другие функции как даты (или время). Вы можете импортировать свои данные в данные, как обычно (как обычно (Смотрите здесь, если вы пропустили это) Затем вы можете преобразовать свой 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
Другие советы
Попробуй это. Мы избавляемся от столбцов с неприятностями и указываем формат индекса времени, затем преобразуем в 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"
.