创建一个函数,该函数返回完整案例的用户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