我想获得给定数据框的完整案例数,并以id和nobs(特定id的完整案例数)作为列的数据框的形式显示它们。直到现在我得到了id为#10,23,45等单个数字的答案,但是对于像c(2,3,4,5)这样的数字集合我得到了所有长度的总和打印所有数字时,集合中的每个数字。所以我想知道哪里出错了。以下是我的代码。
`complete <- function(directory, id = 1:332){
file_list <- list.files(directory, full.names=TRUE)
tmp <- vector(mode = "list", length = length(file_list))
for (i in seq_along(file_list)) {
tmp[[i]] <- read.csv(file_list[[i]])
}
output <- do.call(rbind, tmp)
complete <- output[complete.cases(output),]
d<-data.frame(id,nobs=length(which(complete[,"ID"] %in% id)))
d
}`
由于
答案 0 :(得分:0)
这尚未经过测试,所以它确实属于评论,但它只是有点太长了。
试试这个:
## not tested
directory <- "...directory with your files..."
nobs <- sapply(list.files(directory, full.names=TRUE),
function(file) sum(complete.cases(read.table(file))))
result <- data.frame(id=seq_along(nobs),nobs)
我觉得这样可以用更少的代码产生你想要的结果。