Поднабор с несколькими текстовыми файлами с использованием цикла - PullRequest
0 голосов
/ 25 июня 2019

У меня много идентичных текстовых файлов с 3 столбцами и 141 строк данных, разделенных табуляцией.Я хочу прочитать их все в r, используя цикл, но я хочу прочитать только второй столбец (и желательно только строки 49: 141).Я не могу заставить работать код только для чтения в 1 столбце, но он будет работать без поднабора и будет читать весь файл.Он читает каждый файл как отдельный фрейм данных.Кажется, что обычное обозначение для поднабора не применяется при выполнении циклов, потому что каждый файл представляет собой отдельный фрейм данных.

С кодом ниже я получаю ошибку: Ошибка в TEST2 [49: 141, 2]: неверное количество измерений.

files<-list.files()
TEST2 <- lapply(files[49:141, 2], function(fn)read.table(fn,header=FALSE, sep="", fill = TRUE))

1 Ответ

0 голосов
/ 26 июня 2019

files - это объект, который вы хотите перебрать. Вы не можете использовать индексацию так, как вы пытались. Скорее попробуйте что-то вроде этого:

files <- list.files()

my_read_function <- function(x) {
  data <- read.table(x, header=FALSE, sep="", fill = TRUE)
  return(data[49:141, 2])
}

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