Da 31968/48 666 ergibt, erstellen Sie eine Liste mit 666 Vektoren, die jeweils 48 Dateinamen enthalten.
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)])
die Dateien in R als list_of_data Lesen und verwenden do.call & rbind in einem einzigen data.frame zu konvertieren.
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))
}
Alternative:
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))
}
Dies sollte 666 Objekte zurückgeben z.B.
"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"
Um alle 666 data.frame fusionieren:
frames <- grep("a[.]", ls(), value=T)
library(plyr)
output <- ldply(frames, get)
Sie die Dateien in R gelesen haben? Was sind 'X1, X2, ... usw.'? Wenn X1, X2 usw. Spalten eines Datasets sind. 'unlist (dat [paste0 (" X ", 1:48)], use.names = FALSE)' – akrun
Sind die Dateien auf eine nette Weise benannt, um vorhersagbar zu machen, welche kombiniert werden sollten? Sie sollten wahrscheinlich beginnen, indem Sie sie in [als eine Liste von Datenrahmen] lesen (http://stackoverflow.com/a/24376207/903061). – Gregor