我正在尝试使用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
答案 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)