2017-06-11 2 views
1

J'essaie de représenter graphiquement certaines données de séquençage et je veux exclure les données du chromosome 4 (où les lignes de la première colonne ont un '4') quand je l'échelle. Le chromosome 4 peut fausser la normalisation, donc je veux l'exclure de ma fonction scale(). Y'a-t'il un quelconque moyen d'y arriver? En ce moment, j'ai:Comment normaliser les données dans R à l'exclusion de certaines lignes?

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

^Mais est-il possible que je peux indiquer dans cette fonction d'exclure les lignes avec « 4 » dans la première colonne ?? Ou est le seul moyen de le faire pour créer une nouvelle trame de données qui ne contient pas de données sur le chromosome 4?

Voici un échantillon de ce que la trame de données ressemble en bref:

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

Répondre

2

Vous pouvez toujours utiliser la méthode filter(), comme:

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

vous pouvez également faire ceci: 'preMBT_RT < -preMBT_RT%>% mutate_each_ (funs (scale (.)%>% as.vector), vars = c ("Timing"))%>% filter (Chromosome! = 4) ' –

+0

Merci beaucoup! Cela semble être la solution la plus élégante pour mon problème. – nm44

+0

J'ai une question supplémentaire - ce code exclura-t-il le chromosome 4 du calcul de l'échelle * mais mettra à l'échelle les données? Ou exclut-il les données du chromosome 4 d'être mises à l'échelle? – nm44