从Excel读取数据到R并转换为xts

时间:2012-02-17 11:49:20

标签: r xts xlsx assign

我正在尝试使用xlsx包将数据从excel(从多个文件)加载到R中,并将数据转换为xts对象。数据应该作为变量名称获取相关.xlsx表的名称。数据在第一列中包含日期,在第二列中包含价格。

到目前为止我的代码:

 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

1 个答案:

答案 0 :(得分:1)

让我们假设,“name”是可变的,你要转换成xts(它可以是matrix,data.frame等),第一列是日期列,例如“99/01/01”,然后转换将是:

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

要设置colnames,您可以执行以下操作:

colnames(result)=colnames(name)