2012-02-17 98 views
0

我试图从Excel加载数据(从多个文件)成R使用XLSX包的数据UND转换成XTS对象。数据应该以变量名称的形式显示相关.xlsx工作表的名称。数据的第一列是日期,第二列是价格。读取数据,并转换为XTS

我迄今为止代码:

path<-"C:/test/" 
files<-list.files(path=path) 
j<-1 
for (i in files){ 
name<-strsplit(i,'[.]')[[1]][1] 
assign(name,read.xlsx(file=paste(path,i,collapse=NULL,sep=""),sheetIndex=1,header=TRUE,as.data.frame=TRUE)) 
files[j]<-name 
j<-j+1 
} 

现在我想改变的类型为XTS对象。但我不知道如何处理日期。我找到的一个解决方案是将第一列分配为rowname,但我不知道如何在不丢失变量名的情况下实现这一点。

我将不胜感激您的帮助。 Thx

+0

用'dated'版本覆盖现有的列,像'是myDF $日期< - as.Date( mydf $ date,format =“%Y-%m-%d”)'。 – 2012-02-17 12:40:59

+0

我也会看看'zoo'包。 – Justin 2012-02-17 15:42:49

回答

1

我们假设,“名称”是可变的,您想要将其转换为xts(可以是矩阵,数据框等),第一列是日期列,如“99/01/01” ,那么转换将是:

result=xts(nasa[,-1],order.by=as.POSIXct(strptime(a[,1],'%y/%d/%m'))) 

要设置colnames,你可以这样做:

colnames(result)=colnames(name) 
+0

非常感谢!我确实找到了一个基于我的循环的解决方案 – rainer 2012-02-18 15:41:15