R 循环返回累积结果,而不是离散结果

R 循环返回累积结果,而不是离散结果,r,loops,for-loop,R,Loops,For Loop,我试图从几个数据文件中提取信息——具体地说,每个文件中有多少完整的记录 以下是我写的: 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)) { pr

我试图从几个数据文件中提取信息——具体地说,每个文件中有多少完整的记录

以下是我写的:

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 40-45,以及单个文件的“nobs”结果,而不是所有合并到该点的文件?

这样做:

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))
    }
用于(以下文件中的i){

前数据@李哲源ZheyuanLi-这解决了累积结果的问题,谢谢。我仍然有ID字段的问题,它应该返回40-45,但返回1-6。
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))
    }