0

下面的函数在我使用 1 时起作用,或者以 1 开头作为位置。如果我使用另一个数字(例如 2 或 3:5 等),我会收到以下错误cannot open file 'foo\NA.csv': No such file or directory.这已从我正在处理的家庭作业问题中修改。我不知道为什么要创建这个“NA”值。所有文件都以数字命名(例如 001、010、100).csv

fix1 <- function(dir, place = 1:10) {
  nrows <- vector()
  for (i in place){
      id <- formatC(as.integer(place), 2, flag=0)
      in_file <-paste(dir,"\\", id[i], ".csv",sep="")
      in_data <- read.csv(in_file, header=T, sep=",")
      nrows <- c(nrows, (nrow(in_data)))
      }
return(df1 <- data.frame(place,nrows))  
return(df1)

  }
4

1 回答 1

3

你可以试试这个:

fix1 <- function(dir, place = 1:10) {
    nrows <- integer(length(place))  # agstudy's suggestion; more efficient
    for (i in seq_along(place)){
        id <- formatC(as.integer(place[i]), 2, flag=0)
        in_file <- paste(dir, "\\", id, ".csv",sep="")
        in_data <- read.csv(in_file, header=T, sep=",")
        nrows[i] <- nrow(in_data)
    }
    data.frame(place=place,nrows=nrows)
}
于 2013-10-04T18:37:35.660 回答