Этот вопрос уже имеет ответ здесь:
Я использую R для визуализации некоторых данных, все из которых находятся в .txt формате. Существует несколько сотен файлов в каталоге, и я хочу загрузить все это в одну таблицу в одном выстреле.
Какая-либо справка?
Править:
Список файлов не является проблемой. Но я испытываю затруднения при движении от списка до содержания. Я попробовал часть кода отсюда, но я получаю ошибку с этой частью:
all.the.data <- lapply( all.the.files, txt , header=TRUE)
высказывание
Error in match.fun(FUN) : object 'txt' not found
Любые отрывки кода, который разъяснил бы эту проблему, будут значительно цениться.
Спасибо за все ответы!
Тем временем я сам взломал метод. Дайте мне знать, если это будет полезно:
library(foreign)
setwd("/path/to/directory")
files <-list.files()
data <- 0
for (f in files) {
tempData = scan( f, what="character")
data <- c(data,tempData)
}
Вы можете попробовать следующее:
filelist = list.files(pattern = ".*.txt")
#assuming tab separated values with a header
datalist = lapply(filelist, function(x)read.table(x, header=T))
#assuming the same header/columns for all files
datafr = do.call("rbind", datalist)
См. Справку по функциям dir ()
aka list.files ()
. Это позволяет вам получить список файлов, возможно, отфильтрованных с помощью регулярных выражений, по которым вы можете зацикливаться.
Если вы хотите получить их все сразу, вам сначала нужно разместить контент в одном файле. Один из вариантов - использовать cat
, чтобы ввести все файлы в stdout
и прочитать их с помощью popen ()
. См. справку (Подключения)
для получения дополнительной информации.