【发布时间】:2014-12-14 20:51:43
【问题描述】:
我想获取给定数据框的完整案例数,并以数据框的形式显示它们,其中 id 和 nobs(特定 id 的完整案例数)作为列。到目前为止,我得到了 id 的答案,它们是 10、23、45 等单个数字,但对于像 c(2,3,4,5) 这样的数字集,但我得到了 a 中每个数字的所有长度的总和在打印所有数字时设置。所以我想知道哪里出错了。下面是我的代码。
`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
}`
谢谢
【问题讨论】:
-
当您使用
do.call(rbind,tmp)时,您将到目前为止读取的所有表格绑定在一起。所以output中的行数就是总行数(不包括不完整的情况)。 -
这不是 Coursera 的问题吗?
-
@ananda 是的,你也上这门课吗?
-
@RajaRaghudeepEmani,不。我从 SO 的早期问题中认识到这个问题。请四处搜索,如果您仍然无法回答,请编辑您的问题,显示您遇到的具体问题。
-
@AnandaMahto 当我调用一组数字作为 id 时我被卡住了,例如 id= c(2,4,5,6) 我没有得到我需要的数据框个人身份的完整案例,而是获得个人身份的所有结果的总和。对于像 id=45 或 id =3 am 这样的单个数字 id,获取正确的数据帧,问题仅在于它是一组数字。