2017-10-30 1 views
0

これは私が研究できる質問のように思えるかもしれませんが、そうではありません。リスト内の名前としてファイル名を保持している間にすべてのtsvフォルダをインポートする方法

特定のディレクトリに.tsvで終わるすべてのファイルをインポートしたいとします。これを行うために、私は実行しました:

しかし、私は名前(生)を行うと、私はNULLを取得します。

私は

names(raw) <- dfs 

を行うとしたら次に実際の名前と私が割り当てられた名前が並んでいません。 ファイル名をリストに入れるときにファイル名がデータフレーム名として保持されていることを確認するにはどうすればよいですか?

ありがとうございます。

+0

あなたの名前のないベクトル 'dfs'に' lapply'がどのように作用するのかという理由で、 '名前(生)'は 'NULL'にする必要があります。あなたは 'str(dfs)'と 'str(raw)'の出力を提供できますか? –

+0

'lapply'文の前に' names(raw)< - dfs'を置くのはどうですか?そうすることで、事前に名前を割り当てることができます。 – shuckle

+0

@shuckleそれは動作しません。 'raw'は' lapply'ステートメントでのみ定義されます。 –

答えて

0

これは私が同じことをしたいときに使用するコードです。その牛が、私のためにうまくいきました。私はちょうどあなたのためにうまくいけばそれほど長いスクリプトからそれを引っ張った。

substrRight <- function(x, n){ 
substr(x, nchar(x)-n+1, nchar(x)) 
} 
filenames=list.files(path=yourpath, full.names=TRUE) 
filenameshort<-list.files(path=yourpath, full.names=FALSE) 
endnames=NULL 
for(i in 1:length(filenames)){endnames[i]=substrRight(filenames[[i]],3)} 
filenames=filenames[ifelse(endnames=="tsv",TRUE,FALSE)] 
filenameshort=filenameshort[ifelse(endnames=="tsv",TRUE,FALSE)] 
numberfiles=length(filenames) 
for(i in 1:numberfiles){assign(filenameshort[i],read.table(filenames[i]))} 
+0

何かが欠けていない限り、最終データフレームはリストに追加されません。データフレーム名を維持した状態でリストに追加するにはどうすればよいですか? –

+0

'' list = list(); for(i in 1:numberfiles)のリストを追加してみてください。{lists <-c(lists、filenameshort [i]) ' – CCurtis

関連する問題