我想使用quantmod下载一些库存详情,并使用write.csv
成功保存了文件:
write.csv(df,file="AAPL.csv")
问题是csv文件中没有日期标题。
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2014-10-01 100.59 100.69 98.70 99.18 51491300 97.09741
2014-10-02 99.27 100.22 98.04 99.90 47757800 97.80230
2014-10-03 99.44 100.21 99.04 99.62 43469600 97.52818
2014-10-06 99.95 100.65 99.42 99.62 37051200 97.52818
2014-10-07 99.43 100.12 98.73 98.75 42094200 96.67644
2014-10-08 98.76 101.11 98.31 100.80 57404700 98.68340
2014-10-09 101.54 102.38 100.61 101.02 77376500 98.89877
我想要这样的东西
Date AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2014-10-01 100.59 100.69 98.70 99.18 51491300 97.09741
2014-10-02 99.27 100.22 98.04 99.90 47757800 97.80230
2014-10-03 99.44 100.21 99.04 99.62 43469600 97.52818
我试过这个
colnames(df)[1] <- "Date"
但它改变了AAPL.Open
的标题。
答案 0 :(得分:3)
使用write.zoo
代替write.csv
将xts对象写入csv文件。如果您希望索引列标题为&#34;日期&#34;请设置index.name = "Date"
而不是&#34;索引&#34; (默认)。
例如:
require(quantmod)
getSymbols("AAPL")
write.zoo(AAPL, file="AAPL.csv", sep=",", index.name="Date")
readLines("AAPL.csv", n=3)
# [1] "\"Date\",\"AAPL.Open\",\"AAPL.High\",\"AAPL.Low\",\"AAPL.Close\",\"AAPL.Volume\",\"AAPL.Adjusted\""
# [2] "2007-01-03,86.289999,86.579999,81.899999,83.800002,309579900,11.146771"
# [3] "2007-01-04,84.050001,85.949998,83.820003,85.659998,211815100,11.394181"
然后,您可以使用read.zoo
将这些类型的文件读入zoo对象(可以通过as.xts
转换为xts)。
我还建议你使用saveRDS
或save
以二进制格式保存文件,除非你绝对必须将它们保存为纯文本。
答案 1 :(得分:2)
引用Joshua Ulrich,“ ThreadLocal
默认情况下不返回data.frame;它返回getSymbols
个对象。xts
个对象没有行名它们有一个索引属性,您可以使用xts
函数访问它。“
然后你需要:
index
答案 2 :(得分:1)
您可以这样做:
df$Date <- row.names(df)
row.names(df) <- NULL