Hello everyone, I have a couple of fairly simple questions (I hope) the answers to which I cannot find through the documentation at the moment. 1. I would like to delete the a row from a matrix if a certain elimination criterion is met. I am familiar with x <- x[-7,] (to remove row 7, for example). Are there any other means of removing an entire row? 2. Is there a single command that will rename the index of each row to match the row number once a row has been deleted. For example, when row 7 is deleted above, the old row 8 is now row 7, but the row name is still "8". I have figured out how to assign a sequence vector to the row names, but I am wondering if there is a built-in command that does the same thing. (I.e., change the name of row 7 to "7" from "8".) Thank you very much. Payam -- Payam Minoofar, Ph.D. Scientist Meissner Filtration Products 4181 Calle Tesoro Camarillo, CA 93012 USA +1 805 388 9911 +1 805 388 5948 fax Payam.minoofar@meissner.com [[alternative HTML version deleted]]
Try this: For the first and the second question: transform(subset(d, row.names(d) != 2), row.names=NULL) On Thu, Jun 11, 2009 at 3:53 PM, Payam Minoofar <payam.minoofar@meissner.com> wrote:> Hello everyone, > > I have a couple of fairly simple questions (I hope) the answers to which I > cannot find through the documentation at the moment. > > > 1. I would like to delete the a row from a matrix if a certain > elimination criterion is met. I am familiar with x <- x[-7,] (to remove row > 7, for example). Are there any other means of removing an entire row? > 2. Is there a single command that will rename the index of each row to > match the row number once a row has been deleted. For example, when row 7 is > deleted above, the old row 8 is now row 7, but the row name is still "8". I > have figured out how to assign a sequence vector to the row names, but I am > wondering if there is a built-in command that does the same thing. (I.e., > change the name of row 7 to "7" from "8".) > > Thank you very much. > > Payam > -- > Payam Minoofar, Ph.D. > Scientist > Meissner Filtration Products > 4181 Calle Tesoro > Camarillo, CA 93012 > USA > +1 805 388 9911 > +1 805 388 5948 fax > Payam.minoofar@meissner.com > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
On Jun 11, 2009, at 2:53 PM, Payam Minoofar wrote:> Hello everyone, > > I have a couple of fairly simple questions (I hope) the answers to > which I cannot find through the documentation at the moment. > > > 1. I would like to delete the a row from a matrix if a certain > elimination criterion is met. I am familiar with x <- x[-7,] (to > remove row 7, for example). Are there any other means of removing an > entire row??which # useful for converting logical vectors into argument for functions that require numerics M10 <- matrix(1:100, nrow = 10) # find row with 63 which( sapply( 1:10, function(x) 63 %in% M10[x, ]) ) [1] 3 M10[-which( sapply( 1:10, function(x) 63 %in% M10[x, ]) ), ] # remove row with 63 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 11 21 31 41 51 61 71 81 91 [2,] 2 12 22 32 42 52 62 72 82 92 [3,] 4 14 24 34 44 54 64 74 84 94 [4,] 5 15 25 35 45 55 65 75 85 95 [5,] 6 16 26 36 46 56 66 76 86 96 [6,] 7 17 27 37 47 57 67 77 87 97 [7,] 8 18 28 38 48 58 68 78 88 98 [8,] 9 19 29 39 49 59 69 79 89 99 [9,] 10 20 30 40 50 60 70 80 90 100> 2. Is there a single command that will rename the index of each > row to match the row number once a row has been deleted. For > example, when row 7 is deleted above, the old row 8 is now row 7, > but the row name is still "8". I have figured out how to assign a > sequence vector to the row names, but I am wondering if there is a > built-in command that does the same thing. (I.e., change the name of > row 7 to "7" from "8".) > > Thank you very much. > > Payam > -- > Payam Minoofar, Ph.D. > Scientist > Meissner Filtration Products > 4181 Calle Tesoro > Camarillo, CA 93012 > USA > +1 805 388 9911 > +1 805 388 5948 fax > Payam.minoofar at meissner.com > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.David Winsemius, MD Heritage Laboratories West Hartford, CT
Or perhaps: M10[rowSums(M10 == 63) == 0, ] On Thu, Jun 11, 2009 at 4:49 PM, David Winsemius<dwinsemius at comcast.net> wrote:> > On Jun 11, 2009, at 2:53 PM, Payam Minoofar wrote: > >> Hello everyone, >> >> I have a couple of fairly simple questions (I hope) the answers to which I >> cannot find through the documentation at the moment. >> >> >> 1. ?I would like to delete the a row from a matrix if a certain >> elimination criterion is met. I am familiar with x <- x[-7,] (to remove row >> 7, for example). Are there any other means of removing an entire row? > > ?which ? # useful for converting logical vectors into argument for functions > that require numerics > > M10 <- matrix(1:100, nrow = 10) > > # find row with 63 > which( sapply( 1:10, function(x) 63 %in% M10[x, ]) ) > [1] 3 > > M10[-which( sapply( 1:10, function(x) 63 %in% M10[x, ]) ), ] ? # remove row > with 63 > > ? ? ?[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > ?[1,] ? ?1 ? 11 ? 21 ? 31 ? 41 ? 51 ? 61 ? 71 ? 81 ? ?91 > ?[2,] ? ?2 ? 12 ? 22 ? 32 ? 42 ? 52 ? 62 ? 72 ? 82 ? ?92 > ?[3,] ? ?4 ? 14 ? 24 ? 34 ? 44 ? 54 ? 64 ? 74 ? 84 ? ?94 > ?[4,] ? ?5 ? 15 ? 25 ? 35 ? 45 ? 55 ? 65 ? 75 ? 85 ? ?95 > ?[5,] ? ?6 ? 16 ? 26 ? 36 ? 46 ? 56 ? 66 ? 76 ? 86 ? ?96 > ?[6,] ? ?7 ? 17 ? 27 ? 37 ? 47 ? 57 ? 67 ? 77 ? 87 ? ?97 > ?[7,] ? ?8 ? 18 ? 28 ? 38 ? 48 ? 58 ? 68 ? 78 ? 88 ? ?98 > ?[8,] ? ?9 ? 19 ? 29 ? 39 ? 49 ? 59 ? 69 ? 79 ? 89 ? ?99 > ?[9,] ? 10 ? 20 ? 30 ? 40 ? 50 ? 60 ? 70 ? 80 ? 90 ? 100 > >> ?2. ?Is there a single command that will rename the index of each row to >> match the row number once a row has been deleted. For example, when row 7 is >> deleted above, the old row 8 is now row 7, but the row name is still "8". I >> have figured out how to assign a sequence vector to the row names, but I am >> wondering if there is a built-in command that does the same thing. (I.e., >> change the name of row 7 to "7" from "8".) >> >> Thank you very much. >> >> Payam >> -- >> Payam Minoofar, Ph.D. >> Scientist >> Meissner Filtration Products >> 4181 Calle Tesoro >> Camarillo, CA 93012 >> USA >> +1 805 388 9911 >> +1 805 388 5948 fax >> Payam.minoofar at meissner.com >> >> >> ? ? ? ?[[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > David Winsemius, MD > Heritage Laboratories > West Hartford, CT > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >