2016-07-11 9 views
0

私の質問は混乱しています。しかし、これは私がやりたいことです: 私は現在のディレクトリにdata-01、data-02、data-03、data-04、data-10までの10個のデータファイルがあるとします。これらのデータファイルの各々は、4つのフィールドを有する数百の行を有する。私は、新しい列名 "ID"を追加し、そのファイル内のすべての行に対して01(データファイル "data-01")のIDを保持したいと考えています。ファイル名に基づいて新しい列とその値を追加する

多くの方に感謝します。ループを使用して

+2

私は通常 'library(data.table);を実行します。 LF = list.files(pattern = "csv $");ファイル間でフィールドが同じ場合は、rbindlist(lapply(setNames(LF、LF)、fread)、idcol = "source") 'これにより、データが積み重ねられ、各行に関連付けられたファイル名を含む「ソース」列が作成されます。 – Frank

答えて

1

ベースR・ソリューションは次のように行くだろう:

df<- c() 
for (x in list.files(pattern="*.csv")) { 
    u<-read.table(x) 
    u$Label = factor(x) 
    df <- rbind(df, u) 
    cat(x, "\n ") 
} 

これは、あなたが列を使用する選択することで、ループ内でその周りをゲットするのに同じ数の列を(持つデータファイルに依存します必要がありますあなたが見ているファイルの種類を設定することができます)rbindの前に必要です。 catは、問題が常に発生するため、読み取りの問題をよりよく追跡できるため、便利です。私はapplyと同様にこれを行うためのより良い方法があると確信しています。

関連する問題