Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 数据帧错误:参数表示行数不同_R_Dataframe - Fatal编程技术网

R 数据帧错误:参数表示行数不同

R 数据帧错误:参数表示行数不同,r,dataframe,R,Dataframe,尽管阅读了关于这个错误的现有答案,我仍然不知道如何在我的特殊情况下解决这个问题 我必须在文件列表中获得完整案例的总和。每个文件(例如file1对应一个id(例如file1的id1)。我的目标是获得一个数据帧,其中包含每个id的完整案例数(因此,对于每个文件,file1包含id1的污染物,file2包含id2的污染物,依此类推) 当我运行函数时:complete(“pollu”,1:10)-->一切正常 但当我运行函数时: 我得到了34次ID,其中33次返回NA,最后返回完整案例的数量 comp

尽管阅读了关于这个错误的现有答案,我仍然不知道如何在我的特殊情况下解决这个问题

我必须在文件列表中获得完整案例的总和。每个文件(例如file1对应一个id(例如file1的id1)。我的目标是获得一个数据帧,其中包含每个id的完整案例数(因此,对于每个文件,file1包含id1的污染物,file2包含id2的污染物,依此类推)

当我运行函数时:
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)