2017-03-21 9 views
0

複数のcsvファイルをデータフレームに読み込んで、何個の完全な(NAsなし)観測値があるかを確認してから、完全な観測値が、引数として関数に渡されるしきい値よりも大きい場合、基準に適合する各データフレームの2つの列間の相関関係を持つベクトルを返します。複数のデータフレームの列間の相関を計算する

は今、私は次のコードを持っている:

Error in file(file, "rt") : cannot open the connection In addition: Warning message: 
In file(file, "rt") : cannot open file 'NA': No such file or directory 
を:私は150のしきい値、200、400、などでコードを実行しようとすると

> dput(corr) 
function (threshold = 0, directory = "/Users/marsh/datasciencecoursera/specdata/") 
{ 
setwd(directory) 
data_files <- list.files() 
output <- c() 
for (i in data_files) { 
    raw_data <- read.csv(data_files[i]) 
    raw_data_nona <- na.omit(raw_data) 
    if (nrow(raw_data_nona) > threshold) { 
     sulfate <- raw_data_nona[, "sulfate"] 
     nitrate <- raw_data_nona[, "nitrate"] 
     correlation <- cor(sulfate, y = nitrate) 
     ouput <- c(ouput, correlation) 
    } 
} 
ouput 
} 

を、私は、読み込みエラーメッセージが表示されます

私は何がうまくいかないのか分かりません。私はディレクトリが無数の時間であることを確認しました。そして、コードをコンソール・ラインでライン単位で実行すると、ピース・ミール・タイプの方法で、時々動作します。 の助けを借りて、なぜの機能がファイルに接続できないように見えますか?

+0

あなたは 'デバッグ(CORR)'でそれをデバッグしようとした持っている:あなたはすでに文字列を持っているので、ただやる、バックdata_filesにインデックスする必要はありませんか? – dash2

+0

また、 "ファイルNAを開くことができません"という手掛かりがあります。あなたのファイルがNAと呼ばれる場合、それは間違っていて、 'list.files'は問題がどこにあるのかを示唆しています。ディレクトリ内に奇妙なオブジェクトがありますか?多分、リンクや他のディレクトリですか? – dash2

答えて

3

私はあなたの問題は、これら2つのラインであると思う:私はdata_filesc("data1.csv", "data2.csv")のようなファイル名のベクトルであると仮定し

for (i in data_files) { 
    raw_data <- read.csv(data_files[i]) 

。次に、forループの各反復で、i"data1.csv"のような文字列になります。あなたはそれが現在の位置のインデックスである数字であると予想されたようです。

for (i in data_files) { 
    raw_data <- read.csv(i) 
関連する問題