Dear all, I am having a bit of trouble trying to remove rows in a table by its rowname. I would be very graceful if you could check if i am doing something wrong. Here is what i'm doing:
> data = read.table("path/to/my/file/file", header=T, row.names=1, com='') > head(data) apo1_LO apo2_LO apo3_LO apo4_LO lux1_LO lux2_LO lux3_LO comp230955_c0_seq10 0.00 8.05 8.15 32.91 0.00 38.41 0.00 comp135535_c0_seq1 1.00 0.00 0.00 0.00 0.00 0.00 0.00 comp222610_c5_seq4 4.96 8.21 1.84 5.57 14.59 6.54 6.51 comp227842_c8_seq3 93.53 131.08 79.54 198.85 166.32 108.80 43.79 comp230019_c3_seq1 141.97 355.04 142.11 71.02 497.84 424.01 212.69 comp215198_c1_seq3 18.27 28.28 10.52 0.00 64.35 0.00 0.00 lux4_LO WT1_LO WT2_LO WT3_LO WT4_LO comp230955_c0_seq10 17.45 16.59 0.00 0.00 0.00 comp135535_c0_seq1 0.00 0.00 1.00 1.00 0.00 comp222610_c5_seq4 3.78 5.43 11.87 6.01 1.99 comp227842_c8_seq3 125.63 45.37 34.13 103.42 67.96 comp230019_c3_seq1 142.03 70.95 70.54 70.93 142.23 comp215198_c1_seq3 21.05 17.74 0.00 19.66 0.00 > dim(data) [1] 171471 12 > vf = read.table("vf_IDs", header=T, sep="\t") > remove= vf$contig_id # list of rownames I would like to remove from file "data" > head(remove) [1] comp168081_c0_seq1 comp168081_c1_seq1 comp168081_c2_seq1 [4] comp168081_c3_seq1 comp3015455_c0_seq1 comp13879_c0_seq1 78 Levels: comp105265_c0_seq1 comp105265_c1_seq1 ... comp80665_c0_seq1 > datawithoutVF = data[ !(rownames(data) %in% remove), ] > dim(datawithoutVF) [1] 171417 12
# The dimensions of the new table, "datawithoutVF" is the same as the original "data". So it seems any row has been deleted. I checked then if at least one of the rowname of the list was in the original data.
> any(row.names(data) == 'comp168081_c2_seq1') [1] TRUE
# But checking in the "fileterd" table I don't find it.
> any(row.names(datawithoutVF) == 'comp168081_c2_seq1') [1] FALSE
It seems that it is removing the rownames but not the actual row. I guess i am missing something important but I do not understand what is going on.
How could I remove the entire row by its rowname?
Many thanks for your help!
datawithoutVF
does have fewer rows thandata
in your example (54 fewer rows, to be exact).True!! Oh dear, I am dyslexic and did not see it! Thanks to point it out :)
No problem then.