2012-02-17 7 views
0

xlsx 패키지를 사용하여 R에 Excel (여러 파일에서)의 데이터를로드하고 데이터를 xts 오브젝트로 변환하려고합니다. 데이터는 관련 .xlsx 시트의 이름을 변수 이름으로 가져와야합니다. 데이터에는 첫 번째 열에 날짜가 있고 두 번째 열에는 가격이 있습니다. 지금까지Excel에서 R로 데이터를 읽고 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")'. –

+0

나는 또한'zoo' 패키지를 살펴볼 것입니다. – Justin

답변

1

"name"은 xts (matrix, data.frame 등이 될 수 있음)로 변환하려는 변수이고 첫 번째 열은 "99/01/01"과 같은 날짜 열이라고 가정 해 봅시다. 다음 변환은 다음과 같습니다 COLNAMES을 설정하려면

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

, 당신은 할 수 있습니다 :

colnames(result)=colnames(name) 
+0

대단히 감사합니다! 내 루프를 기반으로 솔루션을 찾았습니다. – rainer