2017-06-11 5 views
1

Ich versuche, einige Sequenzdaten zu zeichnen und Chromosom 4-Daten (wo die Zeilen in der ersten Spalte eine '4' haben) auszuschließen, wenn ich es skaliere. Chromosom 4 kann die Normalisierung verzerren, daher möchte ich sie von meiner Funktion scale() ausschließen. Gibt es eine Möglichkeit, das zu tun? Gerade jetzt, ich habe:Wie normalisiert man Daten in R ohne bestimmte Zeilen?

preMBT_RT <-preMBT_RT %>% mutate_each_(funs(scale(.) %>% as.vector),vars=c("Timing")) 

^Aber ist es eine Möglichkeit, in dieser Funktion anzeigen kann ausschließen Zeilen mit ‚4‘ in der ersten Spalte ?? Oder ist das der einzige Weg, um einen neuen Datenrahmen zu erstellen, der keine Daten von Chromosom 4 enthält? Hier

ist ein Beispiel, was der Datenrahmen aussieht in Kürze:

Chromosome  Location  Replication Timing 
1    3748   -0.0001 
4    1847101  0.000302 <-row I would want to exclude 
20    1234   0.000102 
...   ...   ... 

Antwort

2

Sie können immer verwenden die filter() Methode, wie:

preMBT_RT <-preMBT_RT %>% filter(Chromosome!=4) %>% 
mutate_each_(funs(scale(.) %>% as.vector),vars=c("Timing")) 
+0

können Sie auch dies tun: 'preMBT_RT < -preMBT_RT%>% muate_each_ (Spaß (Skala (.)%>% as.vector), vars = c ("Timing"))%>% Filter (Chromosom! = 4) ' –

+0

Vielen Dank! Dies scheint die eleganteste Lösung für mein Problem zu sein. – nm44

+0

Ich habe eine zusätzliche Frage - wird dieser Code Chromosom 4 von der Skalierung * Berechnung * ausschließen, aber trotzdem die Daten skalieren? Oder schließt es aus, dass die Daten von Chromosom 4 sogar skaliert werden? – nm44

Verwandte Themen