Skip to content

Obtain numbers from vector of NAs and numbers

3 messages · Gundala Viswanath, Dimitris Rizopoulos, Carlos J. Gil Bellosta

#
Dear all,

I have this set of vectors generated via a loop.
+  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
#
have a look at ?is.na(), e.g.,

dat$v1[!is.na(dat$v1)]


I hope it helps.

Best,
Dimitris
Gundala Viswanath wrote:

  
    
#
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: