С 31968/48 дает 666, создайте список с 666 векторами, каждый из которых содержит 48 имен файлов.
file_names <- list.files(path=".", pattern="\\.txt") # change the path to the directory where the files are kept
list_of_files <- lapply(1:666, function(x) file_names[((x-1)*48 + 1):((x-1)*48 + 48)])
Читать файлы в R, как list_of_data и использовать do.call & rbind конвертировать в один data.frame.
for(i in 1:666){
list_of_data <- lapply(list_of_files[[i]], read.table, sep="\t") # put in appropriate read.table parameters for the text files
assign(paste0("a", i), do.call(rbind, list_of_data))
}
Альтернатива:
for(i in 1:666){
list_of_data <- lapply(list_of_files[[i]], read.table, sep="\t")
assign(sprintf("a.%03d", i), do.call(rbind, list_of_data))
}
Это должно вернуть 666 объектов, например,
"a.001" "a.002" "a.003" "a.004" "a.005" "a.006" "a.007" "a.008" "a.009" "a.010" "a.011"
"a.012" "a.013" "a.014" "a.015" "a.016" "a.017" "a.018" "a.019" "a.020" "a.021" "a.022"
Чтобы объединить все 666 data.frame:
frames <- grep("a[.]", ls(), value=T)
library(plyr)
output <- ldply(frames, get)
ли вы читать файлы в R? Что такое «X1, X2, ... и т. Д.»? Если X1, X2 и т. Д. Являются столбцами набора данных. 'unlist (dat [paste0 (" X ", 1:48)], use.names = FALSE)' – akrun
Являются ли файлы, названные в хорошем смысле, предсказуемыми, какие из них следует объединить? Вероятно, вам следует начать с чтения их в [в виде списка кадров данных] (http://stackoverflow.com/a/24376207/903061). – Gregor