我正在尝试做一些显而易见的事情,但无法解决它。从Web下载的R中的数据帧如下所示,我需要保存数据。以下是我的下载方式:
library(tseries)
library(zoo)
ts <- get.hist.quote(instrument="DJIA",
start="2008-07-01", end="2017-03-05",
quote="Close", provider="yahoo", origin="1970-01-01",
compression="d", retclass="zoo")
然后,返回对象&#34; ts&#34;有两列表;第一个日期(没有标题为R首选),另一个日期为&#34;关闭&#34; DJIA的价值
> ts
Close
2008-07-01 11382.26
2008-07-02 11215.51
2008-07-03 11288.53
2008-07-07 11231.96
.
.
.
2016-03-03 16943.90
2016-03-04 17006.77
我需要以txt或类似格式导出的数据并稍后导入列表; (因为我会尝试处理健康信息,没有互联网访问权限)但是当我尝试保存它时;缺少没有标题的日期列。另外一行&#34;行数#34;列已添加。如果问题很明显但没有其他选择可以解决,我会道歉
答案 0 :(得分:1)
日期列没有标题,因为日期是作为rownames / index导入的。 write.csv
的默认值为row.names = FALSE
。尝试:
write.csv(ts, file = "ts.csv",row.names=TRUE)
修改强>
扼杀,这不适用于class "zoo"
根据? write.table
:
write.table打印所需的参数x(将其转换为 数据帧(如果它不是文件或连接中的一个或矩阵)。
显然这种转换以某种方式失败了。但是,这有效:
write.csv(data.frame(ts), file = "ts.csv",row.names=TRUE)
答案 1 :(得分:0)
ts
对象是一个zoo对象(不是两列表)。在这种情况下,zoo对象在内部由一列数据矩阵和一个包含日期的"index"
属性表示。
1)保存/加载如果您想要对输出文件做的唯一事情是稍后将其读回R,则没有理由要求文本,任何格式都可以。特别是你可以这样做:
save(ts, file = "ts.Rda")
现在在以后的会议中:
library(zoo)
load("ts.Rda")
1a)这也可以生成一个R源文件,当sourced重建zoo对象时:
dump("ts", "ts.R")
以及后来的会议:
library(zoo)
source("ts.R")
2)write.zoo / read.zoo 这将提供一个文本文件:
write.zoo(ts, "ts.dat")
可以使用以下方法将其写回另一个会话:
library(zoo)
ts <- cbind( read.zoo("ts.dat", header = TRUE) )