# all.equal() and which()

4 messages
Open this post in threaded view
|
Report Content as Inappropriate

## all.equal() and which()

 Please excuse the lack of a complete dataset here, if its needed I'll be happy to provide it. Can anyone show me how to rewrite this? Browse[1]> time(data)[24210:24220] [1] 24.209 24.210 24.211 24.212 24.213 24.214 24.215 24.216 24.217 [10] 24.218 24.219 Browse[1]> which(time(data)==24.211) numeric(0) I'm assuming its an eps fault but which(all.equal(time(data),24.211)) dosnt seem to work ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Open this post in threaded view
|
Report Content as Inappropriate

## Re: all.equal() and which()

 On Fri, 2006-02-03 at 10:41 -0500, tom wright wrote: > Please excuse the lack of a complete dataset here, if its needed I'll be > happy to provide it. > Can anyone show me how to rewrite this? > > Browse[1]> time(data)[24210:24220] > [1] 24.209 24.210 24.211 24.212 24.213 24.214 24.215 24.216 24.217 > [10] 24.218 24.219 > > Browse[1]> which(time(data)==24.211) > numeric(0) > > I'm assuming its an eps fault but > which(all.equal(time(data),24.211)) > > dosnt seem to work There might be an easier way, but here is one approach: > mydat  [1] 24.209 24.210 24.211 24.212 24.213 24.214 24.215 24.216 24.217 [10] 24.218 24.219 > which(sapply(mydat, function(x) isTRUE(all.equal(24.211, x)))) [1] 3 This uses sapply() to check each element of 'mydat' against the target value of 24.211.  The use of 'isTRUE(all.equal(...))' returns a boolean result of either TRUE or FALSE, enabling the use of which() against the vector returned from sapply(): > sapply(mydat, function(x) isTRUE(all.equal(24.211, x)))  [1] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE See ?all.equal and ?isTRUE for more information. HTH, Marc Schwartz ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Open this post in threaded view
|
Report Content as Inappropriate

## Re: all.equal() and which()

 In reply to this post by Tom Wright-9 How about which(abs(time(data) - 24.211) < 1e-7) or the tolerance of your choice. Patrick Burns [hidden email] +44 (0)20 8525 0696 http://www.burns-stat.com(home of S Poetry and "A Guide for the Unwilling S User") tom wright wrote: >Please excuse the lack of a complete dataset here, if its needed I'll be >happy to provide it. >Can anyone show me how to rewrite this? > >Browse[1]> time(data)[24210:24220] >[1] 24.209 24.210 24.211 24.212 24.213 24.214 24.215 24.216 24.217 >[10] 24.218 24.219 > >Browse[1]> which(time(data)==24.211) >numeric(0) > >I'm assuming its an eps fault but >which(all.equal(time(data),24.211)) > >dosnt seem to work > >______________________________________________ >[hidden email] mailing list >https://stat.ethz.ch/mailman/listinfo/r-help>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html> > > >   > ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide! http://www.R-project.org/posting-guide.html