3

1 つのフォルダー内に複数の csv ファイルがあります。各 csv ファイルには、200 行と 200 列のテーブルが含まれています。各ファイルを個別に取り込んで、マトリックスとして表示できます。dir を実行して、各ファイルが配置されているフォルダー内の各ファイルを一覧表示することもできます。私がする必要があるのは、各ファイルを取り込み、それらを開き、それらを配列に結合することです。これを行うと、そのようなファイルがないという警告が表示されます。

これのための私のコードは

x <- dir(path=" ", pattern = ".csv")
num <- array(0,dim=c(200,200,length(x)))
for(i in 1:length(x)){
  temp <- read.csv(x[i], skip=1)
  temp2 <- temp[,2]
  num[,i]<-temp2

}

これは私に警告を与えます

Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
  cannot open file 'test_1.csv': No such file or directory

繰り返しますが、個々のファイルで作業しているときは、それらを問​​題なくインポートして一覧表示し、マトリックスとして開くことができます。この警告が表示されるのはなぜですか? 一度に 1 つずつ実行すると R がファイルを検索できるのに、一度に複数のファイルを検索できないのはなぜですか?

4

1 に答える 1

2

xまず、ファイルのリストを変数に正しく読み込んでいることを確認してください。for ループに問題があると思います。また、それらのファイルと同じディレクトリにいると確信していますか? 変数に入力するdirコマンド" "では、それが何を意味するのかわかりません。pathこれを試して

> x <- dir(pattern = ".csv")
> num <- array(0,dim=c(200,200,length(x))) # in my case `length(x)` is 9.
> m <- matrix(rnorm(200*200),nrow=200,ncol=200) # generate some 200x200 matrix
> for(i in 1:length(x)){
    num[,,i] <- m # notice its num[,,i] and not num[,i]
}
> num[1:4,1:4,9]
           [,1]        [,2]       [,3]       [,4]
[1,] -1.5674073  0.05364477  0.8367233  1.7995047
[2,] -0.8613244  1.00400787 -0.2464169 -1.2897856
[3,] -0.7907845 -1.40617992  1.0596680 -0.5270983
[4,] -0.5206049  0.66253519  1.6820722  1.2017410
于 2013-02-28T20:01:14.830 に答える