私はRには新しく、正確なループの仕方はわかりません。 ここに私の問題があります:フォルダ内に約160のcsvファイルがあり、それぞれ特定の名前が付いています。各ファイルには、 "HL.X.Y.Z。"というパターンがあります。ここでX = "Region"、Y = "cluster"、Z = "point"です。私がする必要があるのは、これらのcsvファイルをすべて読み込み、名前から文字列を抽出し、各csvファイルの文字列で列を作成し、これらのcsvファイルをすべて単一のデータフレームにバインドすることです。いくつかのcsvファイルのcbind列を
setwd("C:/Users/worddirect")
files.names<-list.files(getwd(),pattern="*.csv")
files.names
head(files.names)
>[1] "HL.1.1.1.2F31CA.150722.csv" "HL.1.1.2.2F316A.150722.csv"
[3] "HL.1.1.3.2F3274.150722.csv" "HL.1.1.4.2F3438.csv"
[5] "HL.1.10.1.3062CD.150722.csv" "HL.1.10.2.2F343D.150722.csv"
は、すべてのファイルを読み取るために、このようにすることだけで正常に動作:
files.names
for (i in 1:length(files.names)) {
assign(files.names[i], read.csv(files.names[i],skip=18))
}
は、この作品のような個別のCSVファイルのための余分な列を追加する。ここ は私がやろうとしています何のいくつかのコードがありますファイン:
test<-cbind("Region"=rep(substring(files.names[1],4,4),times=nrow(HL.1.1.1.2F31CA.150722.csv)),
"Cluster"=rep(substring(files.names[1],6,6),times=nrow(HL.1.1.1.2F31CA.150722.csv)),
"Point"=rep(substring(files.names[1],8,8),times=nrow(HL.1.1.1.2F31CA.150722.csv)),
HL.1.1.1.2F31CA.150722.csv)
head(test)
Region Cluster Point Date.Time Unit Value
1 1 1 1 6/2/14 11:00:01 PM C 24.111
2 1 1 1 6/3/14 1:30:01 AM C 21.610
3 1 1 1 6/3/14 4:00:01 AM C 20.609
ただし、上記のforループは機能しません。
files.names
for (i in 1:length(files.names)) {
assign(files.names[i], read.csv(files.names[i],skip=18))
cbind("Region"=rep(substring(files.names[i],4,4),times=nrow(i)),
"Cluster"=rep(substring(files.names[i],6,6),times=nrow(i)),
"Point"=rep(substring(files.names[i],8,8),times=nrow(i)),
i)
}
>Error in rep(substring(files.names[i], 4, 4), times = nrow(i)) :
invalid 'times' argument
最後のステップは、すべてのcsvファイルを1つのデータフレームにバインドすることです。
私は何か提案を感謝します。私がやったことをする簡単な方法があれば、私はあまりにも感謝します!
おい、あなたは魔術師です!完璧に働いた。したがって、この場合、「read.csv(x)」はなぜ機能しますか?私は、各csvを読み込み、他の列を追加するために 'for'ループを実行しなければならないと思った。 –
こんにちは@CaesarGan。このテクニックの詳細については、私の記事[抽出演算子の形式 - 割り当て1の概念](https:// github。Johns Hopkinsのデータ科学のスペシャライゼーション* R Programmingをサポートするために書いた、com/lgreski/datasciencectacontent/blob/master/markdown/rprog-extractOperator.md#concepts-for-r-programming --- programming-assignment-1) * コース。また、あなたが役に立ったと答えた場合には、回答を受け入れるか、またはアップアップしてください。 –
素晴らしい、ありがとう! –