计算R中id子集输出顺序的完整情况的函数

时间:2016-02-11 21:40:12

标签: r subset

创建一个函数,该函数返回完整案例的用户ID列表和每个id的观察数量。得到了核心代码,但遇到了一个问题,其中返回/输出是按数字排序组织的,而不是参数如何传递给函数。我已经阅读了stackoverflow和google查看子集化数据和函数的内容,但无法将我的问题归结为数据按照原样排序的原因。

这是我的代码:

complete <- function(directory, id = 1:332){

    files <- list.files(pattern="*.csv")
    myfiles <- do.call(rbind, lapply(files, function(x) read.csv(x, stringsAsFactors = FALSE)))
    data.set <- subset(myfiles, ID %in% id)
    ans <- sapply(split(data.set, data.set$ID), function(y) sum(complete.cases(y)))
    ans
    return(data.frame(id = names(ans), nobs = unname(ans)))
}        

使用我得到的输出传递样本数据:

complete("specdata", 30:25)
  id nobs
1 25  463
2 26  586
3 27  338
4 28  475
5 29  711
6 30  932

0 个答案:

没有答案