Dear all, I have this set of vectors generated via a loop.> for (i in 1:nrow(dat)) {+ print(dat$v1) } [1] NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA NA NA NA [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] NA NA NA NA NA NA NA NA NA NA NA NA NA 18 NA NA NA NA NA NA [1] NA NA NA NA NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 17 18 NA 13 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] NA NA NA NA 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 5 6 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 9 10 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 13 14 3 17 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 2 1 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 3 3 13 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [1] 4 4 16 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA What I want to do is to extract only integer (i.e. every numbers except NA) yielding 1 single vector that contain all. [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 9 18 8 17 18 [26] 13 9 5 6 7 9 10 11 13 14 3 17 2 1 14 3 3 13 4 4 16 Is there a quick way to do it? I tried "grep("[0-9]", vect)" but fail. - Gundala Viswanath Jakarta - Indonesia
Dimitris Rizopoulos
2009-Jan-14 10:39 UTC
[R] Obtain numbers from vector of NAs and numbers
have a look at ?is.na(), e.g., dat$v1[!is.na(dat$v1)] I hope it helps. Best, Dimitris Gundala Viswanath wrote:> Dear all, > > I have this set of vectors generated via a loop. > >> for (i in 1:nrow(dat)) { > + print(dat$v1) } > > [1] NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA 18 NA NA NA NA NA NA > [1] NA NA NA NA NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 17 18 NA 13 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 5 6 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 9 10 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 13 14 3 17 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 2 1 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 3 3 13 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 4 4 16 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > > What I want to do is to extract only integer (i.e. every numbers except NA) > yielding 1 single vector that contain all. > > [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 9 18 8 17 18 > [26] 13 9 5 6 7 9 10 11 13 14 3 17 2 1 14 3 3 13 4 4 16 > > Is there a quick way to do it? > > I tried "grep("[0-9]", vect)" but fail. > > - Gundala Viswanath > Jakarta - Indonesia > > ______________________________________________ > 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. >-- Dimitris Rizopoulos Assistant Professor Department of Biostatistics Erasmus Medical Center Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands Tel: +31/(0)10/7043478 Fax: +31/(0)10/7043014
Carlos J. Gil Bellosta
2009-Jan-14 10:41 UTC
[R] Obtain numbers from vector of NAs and numbers
Hello, new.dat <- dat[ ! is.na(dat) ] should do the trick. Best regards, Carlos J. Gil Bellosta http://www.datanalytics.com On Wed, 2009-01-14 at 19:32 +0900, Gundala Viswanath wrote:> Dear all, > > I have this set of vectors generated via a loop. > > > for (i in 1:nrow(dat)) { > + print(dat$v1) } > > [1] NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA 18 NA NA NA NA NA NA > [1] NA NA NA NA NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 17 18 NA 13 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] NA NA NA NA 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 5 6 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 9 10 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 13 14 3 17 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 2 1 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 3 3 13 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > [1] 4 4 16 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > > What I want to do is to extract only integer (i.e. every numbers except NA) > yielding 1 single vector that contain all. > > [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 9 18 8 17 18 > [26] 13 9 5 6 7 9 10 11 13 14 3 17 2 1 14 3 3 13 4 4 16 > > Is there a quick way to do it? > > I tried "grep("[0-9]", vect)" but fail. > > - Gundala Viswanath > Jakarta - Indonesia > > ______________________________________________ > 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.