Ich habe eine Reihe von Dateien, die, wenn ich sie lese und sie einzeln manipulieren habe ich kein Problem haben.R importieren Sie mehrere Dateien und führen komplexe Funktion auf sie
Sie sind wie folgt organisiert:
z.B.
chrY<-read.table('chrY.txt', sep ='', header=F)
head(chrY)
V1
1 4.514563
2 4.543689
3 4.553398
4 4.533981
5 4.495146
6 4.514563
Ich brauche jeden der Werte in numerische konvertieren:
Und so versuche ich dies für eine Liste von Chromosom Dateien:
temp = list.files(pattern="chr*.txt")
for (i in 1:length(temp)) assign(temp[i], read.table(temp[i], sep ='', header=F))
> temp
[1] "chr17.txt" "chr18.txt"
[3] "chr19.txt" "chr1.txt"
[5] "chr6.txt" "chrY.txt"
Umwandlung in Numerik:
for(i in temp){
temp[i]<-as.numeric(temp[i])
}
Ich wollte über den Durchschnitt aller Dateien plotten und über sie plotten,
eine importierte Datei Plotten ist in Ordnung:
plot(chrY.txt[,1])
mein Versuch, die Mittelwerte zwischen allen von ihnen Plotten wie folgt:
for(i in length(temp)-1){ #index -1 such that iteration is not out of range
x<-(temp[i][,1]+temp[i+1][,1])/length(temp)
}
plot(x)
jedoch für die Mittelungsprozess ich die folgende Fehlermeldung erhalten:
Error in temp[i][, 1] : incorrect number of dimensions
Gibt es einen schnelleren Weg als eine for-Schleife in R? Dies ist eine Praxis laufen und ich werde möglicherweise eine Menge von Dateien auf durchschnittlich über
Sie haben 'Länge (Temp) -1' und es ist nur ein einzelner Wert, möglicherweise benötigen Sie' Seq (Länge (Temp) -1) 'Zweites Problem im letzten Code ist die' Temp' ist ein "Vektor" von Objektnamen, Sie müssen es lesen (wie Sie im ersten Block des Codes getan haben) und dann die Summartion tun – akrun
Danke @akrun versuchte es mit der 'Seq()' enthalten, aber bekommen der gleiche Fehler: Könnten Sie mit der zweiten Hälfte Ihrer Anweisungen klarer sein? so weit ich sehen kann, greift der erste Code-Block auf den Vektor genauso zu wie der zweite Block ... –
du musst es lesen 'read.table (temp [i], sep = '', header = F) ' – akrun