csvファイル(001.csv、002.csv、...、332.csvなど)を含む「specdata」というディレクトリがあります。ここで、関数がこのディレクトリ内のすべてのファイルを読み取り、data.frameを返すようにします。最初の列はファイルの名前で、2番目の列は完全なケースの数です。
例えば:
id nobs
1 108
2 345
...
etc
ここで、「specdata」ディレクトリ内のすべてのファイルを読み取り、各ファイルの完全なケースの合計を生成するこの関数を作成しました。しかし、私はそれぞれの番号を置く方法がわかりません。ループから新しいdata.frameへの「nobs」によって次の形式で生成されます。
id nobs
1 108
2 345
...
...
332 16
私の機能:
complete <- function(directory, id = 1:332) {
for(i in 1:332)
{
if(i<10)
{
path<-paste(directory,"/00",id[i],".csv",sep="")
}
if(i>9 & i<100)
{
path<-paste(directory,"/0",id[i],".csv",sep="")
}
if(i>99 & i<333)
{
path<-paste(directory,"/",id[i],".csv",sep="")
}
mydata<-read.csv(path)
#nobs<-nrow(na.omit(mydata))
nobs<-sum(complete.cases(mydata))
}
}
問題は、「nobs」がforループで行ごとに動的に作成されることであり、すべてのファイルの「nobs」のリスト全体をdata.frameに入れたいと考えています。私は多くの方法を試しましたが、「nobs」のリスト全体を「id」番号とともにdata.frameに入れることができません。
誰かがdata.frameを要求された順序で返す方法を提案できますか?