2017-01-20 10 views
3

私はいくつかのデータファイル、具体的には各ファイルに存在する完全なレコードの情報を抽出しようとしています。ループは、離散ではなく累積結果を返します。

は、ここで私が書いたものだ:

が返す何
complete <- function(directory, id=1:332) { 
files_senscomp <- list.files(directory, full.names=TRUE)[id] 
pre_dat <- data.frame() 
full_dat <- data.frame() 

for (i in seq(files_senscomp)) { 
    pre_dat <- rbind(pre_dat, read.csv(files_senscomp[i])) 
    nobs <- sum(complete.cases(pre_dat)) 
    id <- i 
    full_dat <- rbind(full_dat,data.frame(id,nobs)) 
} 
full_dat 
} 

、しかし、累積的です。 IDは間違っています。ここでの機能は、アクションと結果である:

> complete("specdata", 40:45) 
    id nobs 
1 1 21 
2 2 248 
3 3 308 
4 4 382 
5 5 665 
6 6 1089 

は、なぜこれが個々のファイルではなく、その時点までに組み合わせたすべてのファイルのための「NOBS」結果とともに、IDの40-45を返さないのですか?

+0

- 累積の結果、感謝の問題を解決します。私はまだIDフィールドに問題があります.IDフィールドは40-45を返すはずですが、1-6を返しています。 – bdure

答えて

2

これはそれをしない:ZheyuanLi李哲源@

for (i in seq(files_senscomp)) { 
    pre_dat <- read.csv(files_senscomp[i]) ## no `rbind` 
    nobs <- sum(complete.cases(pre_dat)) 
    ID <- id[i] ## `id` is your function argument, taking `40:45` 
    full_dat <- rbind(full_dat,data.frame(id = ID, nobs = nobs)) 
    } 
+0

本当にありがとうございます。 – bdure

関連する問題