Hi, I've a vector like this:> inc[1] NA NA NA NA NA NA NA [8] NA NA NA NA NA NA NA [15] NA NA NA NA NA NA NA [22] NA NA NA NA NA NA NA [29] NA NA NA NA NA NA NA [36] NA NA NA NA NA NA NA [43] NA NA NA NA NA NA NA [50] NA NA NA NA NA NA NA [57] NA NA NA NA NA NA NA [64] NA NA NA NA NA NA NA [71] NA NA NA NA NA NA NA [78] NA NA NA NA 13.095503 10.140119 7.989186 [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 14.421302 [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 2.005056 [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 18.762169 I must obtain the position of first value of the vector... In this case is 82.> inc[82][1] 13.09550 Regards, Alfredo
Try this: which(diff(is.na(inc)) < 0) On Tue, Jun 23, 2009 at 11:00 AM, Alfredo Alessandrini <alfreale74@gmail.com> wrote:> Hi, > > I've a vector like this: > > > inc > [1] NA NA NA NA NA NA NA > [8] NA NA NA NA NA NA NA > [15] NA NA NA NA NA NA NA > [22] NA NA NA NA NA NA NA > [29] NA NA NA NA NA NA NA > [36] NA NA NA NA NA NA NA > [43] NA NA NA NA NA NA NA > [50] NA NA NA NA NA NA NA > [57] NA NA NA NA NA NA NA > [64] NA NA NA NA NA NA NA > [71] NA NA NA NA NA NA NA > [78] NA NA NA NA 13.095503 10.140119 7.989186 > [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 14.421302 > [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 2.005056 > [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 18.762169 > > I must obtain the position of first value of the vector... > > In this case is 82. > > > inc[82] > [1] 13.09550 > > > Regards, > > Alfredo > > ______________________________________________ > 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 23, 2009, at 10:00 AM, Alfredo Alessandrini wrote:> Hi, > > I've a vector like this: > >> inc > [1] NA NA NA NA NA > NA NA > [8] NA NA NA NA NA > NA NA > [15] NA NA NA NA NA > NA NA > [22] NA NA NA NA NA > NA NA > [29] NA NA NA NA NA > NA NA > [36] NA NA NA NA NA > NA NA > [43] NA NA NA NA NA > NA NA > [50] NA NA NA NA NA > NA NA > [57] NA NA NA NA NA > NA NA > [64] NA NA NA NA NA > NA NA > [71] NA NA NA NA NA > NA NA > [78] NA NA NA NA 13.095503 10.140119 > 7.989186 > [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 > 14.421302 > [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 > 2.005056 > [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 > 18.762169 > > I must obtain the position of first value of the vector... > > In this case is 82. > >> inc[82] > [1] 13.09550 >which(!is.na(inc))[1]> > Regards, > > Alfredo >David Winsemius, MD Heritage Laboratories West Hartford, CT
On Tue, Jun 23, 2009 at 04:00:21PM +0200, Alfredo Alessandrini wrote:> I've a vector like this: > > > inc > [1] NA NA NA NA NA NA NA > [8] NA NA NA NA NA NA NA > [15] NA NA NA NA NA NA NA > [22] NA NA NA NA NA NA NA > [29] NA NA NA NA NA NA NA > [36] NA NA NA NA NA NA NA > [43] NA NA NA NA NA NA NA > [50] NA NA NA NA NA NA NA > [57] NA NA NA NA NA NA NA > [64] NA NA NA NA NA NA NA > [71] NA NA NA NA NA NA NA > [78] NA NA NA NA 13.095503 10.140119 7.989186 > [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 14.421302 > [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 2.005056 > [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 18.762169 > > I must obtain the position of first value of the vector... > > In this case is 82. > > > inc[82] > [1] 13.09550which(!is.na(inc))[1] cu Philipp -- Dr. Philipp Pagel Lehrstuhl f?r Genomorientierte Bioinformatik Technische Universit?t M?nchen Wissenschaftszentrum Weihenstephan 85350 Freising, Germany http://webclu.bio.wzw.tum.de/~pagel/
min(which(is.na(inc)==FALSE)) #index inc[min(which(is.na(inc)==FALSE))] #value hth daniel ------------------------- cuncta stricte discussurus ------------------------- -----Urspr?ngliche Nachricht----- Von: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] Im Auftrag von Alfredo Alessandrini Gesendet: Tuesday, June 23, 2009 10:00 AM An: r-help at r-project.org Betreff: [R] first value... Hi, I've a vector like this:> inc[1] NA NA NA NA NA NA NA [8] NA NA NA NA NA NA NA [15] NA NA NA NA NA NA NA [22] NA NA NA NA NA NA NA [29] NA NA NA NA NA NA NA [36] NA NA NA NA NA NA NA [43] NA NA NA NA NA NA NA [50] NA NA NA NA NA NA NA [57] NA NA NA NA NA NA NA [64] NA NA NA NA NA NA NA [71] NA NA NA NA NA NA NA [78] NA NA NA NA 13.095503 10.140119 7.989186 [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 14.421302 [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 2.005056 [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 18.762169 I must obtain the position of first value of the vector... In this case is 82.> inc[82][1] 13.09550 Regards, Alfredo ______________________________________________ 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.
I think what you mean is that you want to find the position of the first non-NA value in the vector. is.na returns a boolean vector of the NA values, so: xx <- c(NA,NA,NA,2,3,NA,4)> which(!is.na(xx))[1][1] 4 The other proposed solution, which(diff(is.na(inc)) < 0) is incorrect:> which(diff(is.na(xx))<0)[1] 3 6 -s On Tue, Jun 23, 2009 at 10:00 AM, Alfredo Alessandrini <alfreale74@gmail.com> wrote:> Hi, > > I've a vector like this: > > > inc > [1] NA NA NA NA NA NA > NA... > [71] NA NA NA NA NA NA NA > [78] NA NA NA NA 13.095503 10.140119 7.989186 >...> I must obtain the position of first value of the vector... > > In this case is 82. > > > inc[82] > [1] 13.09550 >[[alternative HTML version deleted]]
Alfredo Alessandrini wrote:> Hi, > > I've a vector like this: > > >> inc >> > [1] NA NA NA NA NA NA NA > [8] NA NA NA NA NA NA NA > [15] NA NA NA NA NA NA NA > [22] NA NA NA NA NA NA NA > [29] NA NA NA NA NA NA NA > [36] NA NA NA NA NA NA NA > [43] NA NA NA NA NA NA NA > [50] NA NA NA NA NA NA NA > [57] NA NA NA NA NA NA NA > [64] NA NA NA NA NA NA NA > [71] NA NA NA NA NA NA NA > [78] NA NA NA NA 13.095503 10.140119 7.989186 > [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 14.421302 > [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 2.005056 > [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 18.762169 > > I must obtain the position of first value of the vector... > > In this case is 82. >one way: which(!is.na(inc))[1] # 82 vQ
The various which(is.na) sort of things are fine, but this problem is just screaming to be solved with rle(). Just do rle(is.na(inc))$lengths[1]+1 > On Tue, Jun 23, 2009 at 11:00 AM, Alfredo Alessandrini <alfreale74 at gmail.com > > wrote: > > > Hi, > > > > I've a vector like this: > > > > > inc > > [1] NA NA NA NA NA NA NA > > [8] NA NA NA NA NA NA NA > > [15] NA NA NA NA NA NA NA > > [22] NA NA NA NA NA NA NA > > [29] NA NA NA NA NA NA NA > > [36] NA NA NA NA NA NA NA > > [43] NA NA NA NA NA NA NA > > [50] NA NA NA NA NA NA NA > > [57] NA NA NA NA NA NA NA > > [64] NA NA NA NA NA NA NA > > [71] NA NA NA NA NA NA NA > > [78] NA NA NA NA 13.095503 10.140119 7.989186 > > [85] 8.711888 7.201234 13.029250 14.430755 8.662832 8.810785 14.421302 > > [92] 7.614985 7.548091 9.843389 14.977402 20.875255 7.787543 2.005056 > > [99] 4.016916 3.601773 4.140390 7.241999 13.280794 18.038902 18.762169 > > > > I must obtain the position of first value of the vector... > > > > In this case is 82. > > > > > inc[82] > > [1] 13.09550