> -----Original Message----- > From:Alaios > Sent: 30 October 2011 21:09 > To: William Dunlap; andrija djurovic > Cc: R-help@r-project.org > Subject: Re: [R] why the a[-indx] does not work? > > What is the difference between though > > !numericVector==0 and > > -numericVector==0 > Er... you need to be (a lot) more careful with operator precendence. See ?Syntax for operator precedence.
-numericVector==0 will usually* give the same answer as numericVector==0 because unary minus has higher precedence than ==, so this is read implicitly as (-numericvector)==0. -1 and 1 are still both nozero, while -0 and 0 are both still zero. ( *'usually' because you may be comparing a double precision nearly-zero with another double precision nearly-zero, and that is _always_ asking for trouble.) !numericVector==0 behaves quite differently because unary negation (!, or NOT) has _lower_ precedence than ==, so this one is read as !(numericVector==0) Operatopr preference rules for programmers: Rule 1: If in doubt about operator precedence, use parentheses Rule 2: Always have doubts about operator precedence unless you have looked it up for _that_ version of _that_ language _that day_. Rule 3: Check the operator precedence of parentheses. S Ellison ******************************************************************* This email and any attachments are confidential. Any use...{{dropped:8}} ______________________________________________ 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.