2014-07-24 1 views
1

Mon objectif est le même que celui expliqué ici: How to remove rows with 0 values using RComment supprimer des lignes avec tous les zéros dans R sans avoir erreur dans x »rowSums doit être numérique

J'ai créé DF1 en lisant un fichier .csv containg environ 50000 lignes, beaucoup avec 0 0 0 0 dans les colonnes FPKM. trame de données d'entrée:

tracking_id gene_id locus FPKM-R1 FPKM-R2 FPKM-R3 FPKM-R4 
NR_1 DDX1 chr1:1 0.031 0.056 0.0045 0.0345 
NR_2 DDX2 chr1:2 3.06588 3.65986 5.32698 3.6996 
NR_3 DDX3 chr1:4 0 0 0 0 
NR_4 DDX4 chr1:4 0 0 0 0 
NM_5 DDX5 chr1:5 0 0 0.046985 0 

souhaité trame de données de sortie:

tracking_id gene_id locus FPKM-R1 FPKM-R2 FPKM-R3 FPKM-R4 
NR_1 DDX1 chr1:1 0.031 0.056 0.0045 0.0345 
NR_2 DDX2 chr1:2 3.06588 3.65986 5.32698 3.6996 
NM_5 DDX5 chr1:5 0 0 0.046985 0 

Je suis en train d'appliquer la solution de rowSums tel que proposé dans le poste passé:

df2 <- df1[rowSums(df1[, -3]) > 0, ] 

mais je suis obtenir

Error in rowSums(df1[, -3]) : 'x' must be numeric 

J'ai vérifié que les données contenues dans les quatre colonnes FPKM-R est numérique. Je ne comprends pas pourquoi cette erreur se produit et ce que je peux faire pour y remédier. Merci!

+0

Peut-être que vous voulez 'DF1 [, - (1: 3)]'? –

+0

Oui, merci beaucoup! – jap

+0

@jap. S'il y a plus de colonnes et de colonnes de caractères dispersées, 'df1 [rowSums (df1 [spply (df1, is.numeric)])> 0,]' – akrun

Répondre

1

Il semble que vous souhaitiez examiner toutes les colonnes sauf les trois premières.

df1[, -3] est la trame de données avec la troisième colonne supprimée. Vous voulez supprimer des colonnes 1, 2 et 3, qui est représenté par 1:3 en R, en donnant cette expression:

df2 <- df1[rowSums(df1[, -(1:3)]) > 0, ] 
+0

J'étais sur le point d'écrire la même réponse ... – vrajs5

+0

Je comprends; Merci beaucoup! – jap

Questions connexes