2016-09-25 3 views
-4

Ich habe einige Dateien mit Namen Reg.stt in 30 verschiedenen Verzeichnissen mit numerischen Daten von Integer und Float-Typ. Ich möchte die Daten in einer anderen Datei ausmitteln. Ich weiß nicht, wie ich in R-Sprache codiere. Aber nach meinen Erkenntnissen ist es einfach, solche Skripte in R-Sprache zu schreiben. Die Struktur der Datei ist wie unter ... Anzahl der Spalten und Zeilen kann variieren.Finding Mittelwert einer Textdatei getrennt durch Leerzeichen in R Sprache

OS: Ubuntu

Ordnerstruktur: /Desktop/folder1/Reg.stt, /Desktop/folder2/Reg.stt ... /Desktop/folder30/Reg.stt

0 0.3857 0.7942 0.0000 12.418 3.626 4 2 12 4 0.3857 0.7942 0.0000 12.418 3.626 4 2 12 4 505 
1 0 0.4269 0.8726 0.0000 11.146 3.730 19 5 8 3 0.4063 0.8726 0.0000 11.782 3.678 19 5 12 4 584 
2 0 0.4427 0.8442 0.0000 11.388 4.014 19 5 15 6 0.4184 0.8726 0.0000 11.651 3.790 19 5 12 4 561 
3 0 0.4472 0.8718 0.0000 11.928 4.134 16 5 23 6 0.4256 0.8726 0.0000 11.720 3.876 19 5 12 4 579 
4 0 0.4511 0.8893 0.0028 11.514 4.176 16 4 31 10 0.4307 0.8893 0.0000 11.679 3.936 16 4 12 4 583 
5 0 0.4546 0.8193 0.0000 11.362 4.204 6 2 6 3 0.4347 0.8893 0.0000 11.626 3.981 16 4 12 4 566 
+0

Es gibt keine Frage und kein reproduzierbares Beispiel und Ihre Aussage hat nichts mit Python zu tun. –

+0

Grundsätzlich wollen Sie jede Datei lesen, Mittel über Spalten berechnen und dann über alle data.frames meinen? –

+0

@ RomanLuštrik ja ... –

Antwort

0

Hier ist eine Möglichkeit, es zu tun. Ich habe Kommentare innerhalb des Codes gemacht.

# Create a sub-folder into which we create files. 
dir.create("temp_dir") 
setwd("temp_dir") 

# Create some files in temp_dir. 
sapply(1:10, FUN = function(i) { 
    xy <- data.frame(a = rnorm(10), b = rnorm(10), c = rnorm(10)) 
    write.table(xy, file = sprintf("filename_%s.txt", i), row.names = FALSE, col.names = TRUE) 
}) 

# Find relevant files, you can use pattern to match if folder doesn't contain only 
# files in question. 
all.files <- list.files(pattern = "filename_") 

# Read in all files. do not simplify the result because we'll need it "raw". The 
# result is a list. 
all.dfs <- sapply(all.files, FUN = read.table, header = TRUE, simplify = FALSE) 

# Calculate grand mean of the data.frame. 
all.means <- lapply(all.dfs, FUN = function(x) mean(sapply(x, mean))) 

# Corce from a list to a vector. 
one.mean <- as.numeric(all.means) 

# Calculate mean for each column. 
mean(one.mean) 

# Clean up this example. 
setwd("../") 
unlink("temp_dir") 
+0

Was ist, wenn alle Textdateien denselben Namen haben und in verschiedenen Verzeichnissen gespeichert sind. d. h. verzeichnis1/abc.txt ... verzeichnis2/abc.txt usw. –

+0

@AsifKhawaja Siehe '? list.files', speziell das Argument' recursive = TRUE'. Dies wird alle Unterverzeichnisse "klettern" und Dateien von ihnen abrufen. Sie können auch 'full.names' verwenden, wenn Sie absolute Pfadnamen benötigen. –

Verwandte Themen