データセットのリストがあります。各データセットには、1か月分のデータが含まれています。データは何年にもわたって存在するため、毎年12個のデータセットがあります。このデータは元々Excelファイルの集まりでした。このアドバイスに従って、以前に.csvに変換されたすべてのファイルをインポートしました。
datalist <- list()
files <- list.files(pattern="\\.csv$")
for(file in files) {
stem <- gsub("\\.csv$","",file)
datalist[[stem]] <- read.csv(file)
}
datalist
そのため、すべてのデータセットを含むという名前のリストが作成されます。
さて、私の問題は、ファイル名だけがデータの各部分が収集された実際の月と年を含んでいるということです。そこで、各データセット名から名前と年を取得し、そのデータフレームの2つの新しい列に代入したいと思います。 "と"月"。
私がデータフレーム名として保持したすべてのファイル名は、次の構造に従います:[月]_[年]_[ ...他のテキスト]、たとえば「August_2012_foo_bar」。そのため、正規表現を使用して、最初に月、次に年を取得することにしました。私のコードスタブは次のとおりです。
for(dataset in names(datalists)) {
name <- dataset
month <- strapply(name,"^([^_]*).*$")
...?
}
正規表現"^([^_]*).*$"
は、アンダースコアの前にあるもの、つまり月を取得します。取得した月をデータセットの新しい列に割り当てる必要があるときに行き詰まります。私は運がなくても、assign
との両方を試しました。cbind
最後に、これらすべてのデータセットを1つに垂直にマージしたいと思います。
助けてくれてありがとう!