2013-08-05 3 views
5

Witam używam macierzy ekspresji genów, liczba fragów do obliczenia genów ulegających ekspresji różnicowej. Chciałbym wiedzieć, jak usunąć wiersze, które mają wartości jako 0. Wtedy mój zestaw danych będzie kompaktowy i mniej fałszywe wyniki zostaną podane do dalszej analizy robię przy użyciu tej macierzy.Jak usunąć wiersze z wartościami 0 przy użyciu R

Wejście

gene ZPT.1 ZPT.0 ZPT.2 ZPT.3 PDGT.1 PDGT.0 
XLOC_000001 3516 626 1277 770 4309 9030 
XLOC_000002 342 82 185 72 835 1095 
XLOC_000003 2000 361 867 438 454 687 
XLOC_000004 143 30 67 37 90 236 
XLOC_000005 0 0 0 0 0 0 
XLOC_000006 0 0 0 0 0 0 
XLOC_000007 0 0 0 0 1 3 
XLOC_000008 0 0 0 0 0 0 
XLOC_000009 0 0 0 0 0 0 
XLOC_000010 7 1 5 3 0 1 
XLOC_000011 63 10 19 15 92 228 

Pożądany wyjście

gene ZPT.1 ZPT.0 ZPT.2 ZPT.3 PDGT.1 PDGT.0 
XLOC_000001 3516 626 1277 770 4309 9030 
XLOC_000002 342 82 185 72 835 1095 
XLOC_000003 2000 361 867 438 454 687 
XLOC_000004 143 30 67 37 90 236 
XLOC_000007 0 0 0 0 1 3 
XLOC_000010 7 1 5 3 0 1 
XLOC_000011 63 10 19 15 92 228 

Jak teraz chcę tylko, aby usunąć te wiersze, gdzie wszystkie kolumny count frag wynoszą 0 jeżeli w dowolnym rzędzie niektóre wartości są 0 i inni non zero Chciałabym zachować ten rząd w stanie nienaruszonym, jak możesz zobaczyć mój przykład powyżej.

Proszę dać mi znać, jak to zrobić.

+11

'df [rowSums (df [-1])> 0,]' – Arun

+1

@Arun drobne nit: PO nie określił, czy on ma tablicę liczb całkowitych lub pływaków, więc być ostrożnym , możesz chcieć sprawdzić, czy 'rowSums' jest większe niż 1e-10 lub coś podobnego. –

+0

@CarlWitthoft, Wydaje mi się, że refluks bioinformatyczny zaczął działać. Są to odczyty z danych dotyczących ekspresji genów. Są to dyskretne liczby, a zatem prawdopodobnie będą to liczby całkowite (> = 0). – Arun

Odpowiedz

12
df[apply(df[,-1], 1, function(x) !all(x==0)),] 
+0

Czy możesz wyjaśnić, w jaki sposób mogę to przekształcić, nie jestem w stanie zrozumieć polecenia, które napisałeś, przepraszam za moją ograniczoną wiedzę w R –

+0

df jest twoją ramą danych. Reszta pozostaje taka sama – bartektartanus

+0

Powinna zadziałać, ale rozwiązanie Aruna w powyższym komentarzu jest znacznie czystsze. –