2016-03-19 11 views
0

Für alle meine Dateien im Ordner miraligner Ich möchte die Spalten wie in meinem Beispiel gezeigt kombinieren. Ich würde gerne die Spalten c ("mir", "seq", "falsch", "hinzufügen", "t5", "t3") als rownames in der Ausgabe und "freq" als Spalten aus den jeweiligen Eingabedateien kombinieren. Ich bin nicht sicher, wie dies für mehrere Eingabe zu tun DateienMerge mehrere Dateien mit unterschiedlicher Länge aus dem Ordner

> setwd("~/miraligner/") 
> file_list <- list.files(pattern = "*.mirna") 
> head(file_list) 

[1] "1_JH_F12_S41.mirna" "107_MAE_E7_S11.mirna" "108_IME_A8_S23.mirna" "109_GW_B11_S27.mirna" "111_PH_H1_S77.mirna" 
[6] "116_TH_E6_S10.mirna" 

> head(1_JH_F12_S41.mirna) 
         seq   name freq    mir start end mism add t5 t3  s5  s3 DB 
1 TGGAGTGTGATAATGGTGTTT seq_100003_x4 4 hsa-miR-122-5p 15 35 11TC  0 0 g GCTGTGGA TTTGTGTC miRNA 
2 TGTAAACATCCCCGACCGGAAGCT seq_100045_x4 4 hsa-miR-30d-5p  6 29 17CT  0 0 CT TTGTTGTA GAAGCTGT miRNA 
3 CTAGACTGAAGCTCCTTGAAAA seq_100048_x4 4 hsa-miR-151a-3p 47 65 0 I-AAA 0 gg CCTACTAG GAGGACAG miRNA 
4 AGGCGGAGACTTGGGCAATTGC seq_100059_x4 4 hsa-miR-25-5p 14 35 0  0 0 C TGAGAGGC ATTGCTGG miRNA 
5 AAACCGTTACCATTACTGAAT seq_100067_x4 4 hsa-miR-451a 17 35 0 I-AT 0 gtt AAGGAAAC AGTTTAGT miRNA 
6 TGAGGTAGTAGCTTGTGCTGTT seq_10007_x24 24 hsa-let-7i-5p  6 27 12CT  0 0 0 TGGCTGAG TGTTGGTC miRNA 
    precursor ambiguity 
1 hsa-mir-122   1 
2 hsa-mir-30d   1 
3 hsa-mir-151a   1 
4 hsa-mir-25   1 
5 hsa-mir-451a   1 
6 hsa-let-7i   1 

Ausgang

ID             freq_file1 freq_file2 freq_file3 
hsa-miR-122-5p_TGGAGTGTGATAATGGTGTTT_11TC_0_0_g  4   2   12 
hsa-miR-30d-5p_TGTAAACATCCCCGACCGGAAGCT_17CT_0_0_CT 4   12   5 

Das ist mein Start ist:

my.list <- lapply(X = my.file.list, FUN = function(x) { 
    read.table(x, colClasses = c("seq", "NULL", "NULL", "mir","NULL","NULL","mism","add","t5","t3","NULL","NULL","NULL","NULL","NULL"), sep = "\t")[,1] 
}) 
+1

ja, aber das ist falsch ausgegangen. Ich werde es löschen – user2300940

+2

Wenn die Spalten sicher sein können, dass sie in allen Dateien gleich sind, dann starte mit 'input <- lapply (file.list, read.table, stringsASFactors = FALSE, ); fullset <- do.call (rbind, input) '. Fertig durch Einfügen der gewünschten Spalten und 'cbind'-ing an' freq' –

+0

Ich habe deinen letzten Teil nicht bekommen? Wie konvertiere ich das rbind in das cbind Format? – user2300940

Antwort

0

Was würde ich tun, ist die folgende:
Lesen Sie jede Datei in einem data.frame,
entfernen Sie unnötige Spalten, (x.column <- NULL) dann die merge-Funktionen verwenden, um die Spalten hinzufügen, wo

benötigt
help(merge) 

dafür, dass die richtigen „alle“ Parameter der Verwendung (d Möchten Sie freq aus einer Zeile der zweiten Datei behalten, auch wenn die Zeile in Ihrer ersten Datei nicht existiert oder nicht?)

Verwandte Themen