R: Попытка прочитать несколько файлов .txt из каталога во вложенный список - PullRequest
0 голосов
/ 06 февраля 2020

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

У меня есть папка с несколькими текстовыми файлами внутри; Я хотел бы прочитать каждый из них во вложенный список. В настоящее время я могу читать по 1 тексту за раз с этим кодом:

user_input <- readline(prompt="paste the path for the folder here: ")

files <- list.files(path = user_input, pattern = NULL, all.files = FALSE, full.names = TRUE)

thefiles <- data.frame(files)
thefiles


Sfiles <- split(thefiles, thefiles$files)
Sfiles

input1 <- print(Sfiles[1])

Но я хочу прочитать все файлы в данном каталоге. Я полагаю, что тогда будет список фреймов данных?

Вот некоторые вещи, которые я пробовал:

- я догадался, что это просто вставит все файлы в каталог, но это не совсем то, что я хочу сделать.

{paste(thefiles,"/",files[[i]],".txt",sep="")
}

- это было предназначено для использования lapply для выполнения read.delim для всех файлов в папке. ошибка, которую он выдает: Ошибка в файле (file, "rt"): недопустимый аргумент "description"

files_test <- list.files(path=user_input, pattern="*.txt", full.names=TRUE, recursive=FALSE)
lapply(thefiles, transform, files = read.delim(files, header = TRUE, sep = "\t", dec = "."))

- я пробовал сам, а также не работает

read.delim(files_test, header = TRUE, sep = "\t", dec = ".")

-Я тоже попробовал для l oop:

test2 <- for (i in 1:length(Sepfiles){read.delim(files_test, header = TRUE, sep = "\t", dec = "."})

Есть ли что-то очевидное, что я делаю неправильно? Любые указатели будут оценены Спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

Это должно работать, если правильная часть read.delim:

thefiles <- list.files(path = user_input, pattern = ".txt$", ignore.case = TRUE, full.names = TRUE, recursive = FALSE)
lapply(thefiles, function(f) read.delim(f, header = TRUE, sep = "\t", dec = "."))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...