Извлечение даты при написании CSV из R в Excel - PullRequest
1 голос
/ 25 июня 2019

Я извлекаю список цен на акции (Open, High, Low, Close, Volume и т. Д.) Из r (Quantmod использовался для получения данных из внешнего источника) в Excel, однако столбец даты опущен .

Я подумал, что проблема в том, что «дата» не распознается как переменная, в то время как другие столбцы (Open, High и т. Д.). Я попытался вставить даты через as.Date (от Sys.Date-365 до Sys.Date, так как мне требуется только один год данных) и связать их. Однако, поскольку длина отличается, и это список на векторной основе, он не будет соответствовать (данные, поступающие из внешнего источника, отображаются только в рабочие дни, где для as.Date будут показаны полные 365 дней.

x <- getSymbols("SPY", src ="yahoo", from=Sys.Date()-365, to=Sys.Date(), auto.assign=FALSE )

write.csv(s, file = "test.csv")

Запись csv, как указано выше, приведет к тому, что столбец даты отобразится как 1, 2, 3, 4 ..., но мне нужна дата, соответствующая цене, как это показано в режиме просмотра в r.

Ответы [ 2 ]

1 голос
/ 25 июня 2019

x в вопросе не является data.frame - это объект zoo / xts, поэтому используйте write.zoo:

write.zoo(x, "file.csv", sep = ",")
0 голосов
/ 25 июня 2019

Это как-то связано с тем, как объект xts zoo, созданный getSymbols, хранит свои индексы строк. Просто преобразуйте его в обычный data.frame при экспорте, чтобы включить индексы даты в виде строк:

ysyms <- getSymbols("SPY",
                    src = "yahoo",
                    from = Sys.Date()-365,
                    to = Sys.Date(),
                    auto.assign = FALSE
                    )

# Convert to data.frame on export.
write.csv(as.data.frame(ysyms), file = "test.csv")
...