R 数据帧错误:参数表示行数不同
尽管阅读了关于这个错误的现有答案,我仍然不知道如何在我的特殊情况下解决这个问题 我必须在文件列表中获得完整案例的总和。每个文件(例如file1对应一个id(例如file1的id1)。我的目标是获得一个数据帧,其中包含每个id的完整案例数(因此,对于每个文件,file1包含id1的污染物,file2包含id2的污染物,依此类推) 当我运行函数时:R 数据帧错误:参数表示行数不同,r,dataframe,R,Dataframe,尽管阅读了关于这个错误的现有答案,我仍然不知道如何在我的特殊情况下解决这个问题 我必须在文件列表中获得完整案例的总和。每个文件(例如file1对应一个id(例如file1的id1)。我的目标是获得一个数据帧,其中包含每个id的完整案例数(因此,对于每个文件,file1包含id1的污染物,file2包含id2的污染物,依此类推) 当我运行函数时:complete(“pollu”,1:10)-->一切正常 但当我运行函数时: 我得到了34次ID,其中33次返回NA,最后返回完整案例的数量 comp
complete(“pollu”,1:10)
-->一切正常
但当我运行函数时:
我得到了34次ID,其中33次返回NA,最后返回完整案例的数量
complete(".", c(2, 4, 8, 10, 12))
我得到一个错误:
data.frame(id,nobs)中出错:参数表示不同的
第5行,第12行
如果您有任何关于理解错误和修复错误的帮助,我们将不胜感激
complete <- function(directory,id=1:332) {
nobs <- vector()
files <- list.files(directory)
for (i in id) {
ID <- id
file <- read.csv(files[i])
nobs[i] <- sum(complete.cases(file),na.rm = TRUE)
}
df <- data.frame(ID,nobs)
colnames(df) <- c("ID", "nobs")
return (df)
complete问题在于for循环以及如何将值分配给nobs[i]
complete("pollu", 34)
循环仅使用i运行一次,为了使其正常工作,我还:-在for循环外创建了一个空的向量ID:ID这似乎只是创建了ID
的副本作为ID
。直接在data.frame中使用ID
可以更轻松地执行此操作
complete("pollu", 34)
complete(".", c(2, 4, 8, 10, 12))
for (i in seq_along(id))) {
ID <- id[i]
file <- read.csv(files[ID])
nobs[i] <- sum(complete.cases(file),na.rm = TRUE)
}
df <- data.frame(id, nobs)