19

私は R でのプログラミングに非常に慣れていませんが、ディレクトリの複数のファイルを読み込んで、それぞれに一意の名前を付けようとしています。RのDendrochronology Program Library(パッケージdpIR)とread.tucson関数を使用してファイルを読んでいます。私は特定のパッケージを使用していますが、私の質問はかなり一般的だと思います:

"t"ループ内で、個々のファイル名とa を連結してファイルを作成したいと考えています。したがって、"2503"自分のディレクトリに という名前のファイルがある場合、R で という名前のデータフレームを作成したいと考えています"t2503"r.tucson次に、各データフレームに関数を使用してデータを読み込みたいと思います。読み込んだデータをデータフレームに割り当てるのではなく、連結をデータで上書きしているだけです。誰かが私が見逃しているステップを理解するのを手伝ってもらえますか?

これが私が使用しようとしているコードです:

#set to appropriate directory
setwd("C:/work")

#get a list of files in the directory
files <- list.files()
numfiles <- length(files)

for (i in 1:numfiles)
{
    name<-paste("t",files[i],sep="")
    name<-read.tucson(files[i],header=NULL)
}
4

1 に答える 1

31

あなたは自分で答えを出したと思います:あなたは使用しなければなりません?assign.

そのようなことを試してください:

for (i in 1:5) {
  assign(paste0("DF", i), data.frame(A=rnorm(10), B=rnorm(10)))
}

これは、1 から 5 までの整数をループし、5 つの data.frames "DF1" から "DF5" を作成します。あなたの例では、単に置き換える必要があります

name<-read.tucson(files[i],header=NULL)

assign(name, read.tucson(files[i],header=NULL))

ただし、これnameは R の基本関数であるため、別の命名規則を使用するか、最初の行をスキップすることに注意してください。

assign(paste("t",files[i],sep=""), read.tucson(files[i],header=NULL))

これがあなたが探しているものであることを願っています。

于 2012-12-18T20:30:12.353 に答える