использование цикла for для циклического перемещения по каталогу - PullRequest
0 голосов
/ 22 октября 2019

Я должен нарисовать из 130 различных файлов .txt, чтобы рассчитать долю данного имени каждый год. Моя программа выполняет вычисления правильно, но когда она переходит к циклу следующего файла, я получаю эту ошибку:

Ошибка в файле (файл, "rt"): неверный аргумент "description"

baby = function(name, sex, data) {
  all.files = dir(path = data, pattern = ".txt")
  #print(all.files)
  proportion = vector()
  i = 1
  for(file in all.files ){
    direc = paste0(data, "/", file)

    data = read.csv(direc, sep = ",", header = FALSE)
    #print(data)

   name.row = which(data[,1] == name)
   print(name.row)

      if(data[name.row[1],2] == sex) {
     #print("hit")
        name.count = data[name.row[1],3]
       # print(name.count) 

   }
   if (data[name.row[2],2] == sex) {
      #print("miss")
     name.count = data[name.row[2],3]
    # print(name.count) 
    }
   print(name.count)


    total.count = sum(data[,3])
   # print(total.count)

    proportion[i] = name.count / total.count
    print(proportion)
    i = i + 1

    }
  return(proportion)

}

он должен возвращать вектор пропорций, по одному от каждого файла, вместо этого я получаю только один файл

1 Ответ

0 голосов
/ 22 октября 2019

Вы можете использовать sapply для выполнения своей работы. Нечто подобное может работать:

sapply(list.files(path = "your_directory",
                  pattern = ".txt",
                  full.names = TRUE), 
       your_fun)

edit: Кредиты этому источнику .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...