2016-10-03 6 views
0

誰かが機会の下で私を助けることができますか?関数は、フルリストの代わりに最後のxmlファイルを読み込みます

関数は、フォルダからすべてのファイルを読み込む代わりに、リストの最後のファイルからの値のみを返します。

function1<-function(directory){ 
    setwd("D:/folder") 
    filelist<-list.files(pattern = "*.xml") 
    for (i in 1:length(filelist)){ 
    doc <- xmlTreeParse(filelist[i], useInternal = TRUE) 
    rootNode<-xmlRoot(doc) 
    c4<-xpathSApply(rootNode,"//Table//node", xmlValue) 
    return(node) 
    } 
} 

お返事ありがとうございます。

+1

、これだけ 'I = 0'評価されます...あなたのニーズに応じて、ノードをリストに追加し、メソッドの最後に返すことができます – digEmAll

+0

しかし、関数はi = 0ではなく、リストの最後のファイルから値を返しました。それとも同じですか?それを修正するために私のコードを編集していただけますか? – skywrighter

+0

あなたはそれについて100%確信していますか?再現可能な例や、 'filelist'にあるもの、' filelist [1] 'の内容、' filelist [length(filelist) 'の内容を示していないことはわかりません。 'for(i seq_along(filelist))'や 'for(filelistのxfile)'も 'filelist [i]'の代わりに 'xfile'を使うべきです。 – hrbrmstr

答えて

0

ソリューションはFYI、発見された:

`リターン(ノード)`中断されたループに到達するとすぐに
setwd("D:/folder") 
xmlfiles <- list.files(pattern = "*.xml") 
sapply(seq(xmlfiles), function(i){ 
doc <- xmlTreeParse(xmlfiles[i], useInternal = TRUE) 
c4<-xmlValue(doc[["//folder//c4"]]) 
return(c4) 
}) 
関連する問題