Greg, your second example, recording the run time of an operation or a function, would make the use of '=' problematic. But I wonder if that's specific to system.time.
H -----Original Message----- From: Greg Snow [mailto:greg.s...@imail.org] Sent: Friday, June 18, 2010 3:33 PM To: Horace Tso Subject: RE: [R] questions on some operators in R And the 2nd example? -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.s...@imail.org 801.408.8111 > -----Original Message----- > From: Horace Tso [mailto:horace....@pgn.com] > Sent: Friday, June 18, 2010 3:09 PM > To: Greg Snow > Subject: RE: [R] questions on some operators in R > > Then, break it into two lines, > > x = rnorm(100) > mean(x) > > H > > -----Original Message----- > From: Greg Snow [mailto:greg.s...@imail.org] > Sent: Friday, June 18, 2010 1:16 PM > To: Horace Tso; li li > Cc: r-help > Subject: RE: [R] questions on some operators in R > > Your example could also be used as an argument against allowing '=' as > a shortcut for <- after all if you are used to using <- (rather than =) > then you will see the problem with x<-2 right off. But if we eliminate > <- and only use =, then how do you do: > > > mean( x <- rnorm(100) ) > > Or > > > system.time( output <- longrunningfunction(args) ) > > Is > > > mean( { x=rnorm(100) } ) > > Really and improvement? > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > greg.s...@imail.org > 801.408.8111 > > > > -----Original Message----- > > From: Horace Tso [mailto:horace....@pgn.com] > > Sent: Friday, June 18, 2010 12:16 PM > > To: li li; Greg Snow > > Cc: r-help > > Subject: RE: [R] questions on some operators in R > > > > Li li, > > > > I know many S-language old timers would tell you to use <- over = for > > assignment. Speaking from my own painful experience of debugging S/R > > codes, I much much much prefer '='. In fact, I'd like to see the R > > language get ride of '<-' as the assignment operator. > > > > Here is why. > > > > > x = -5:10 > > > x > > [1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 > > > > Now I want to find elements of x which are smaller than negative 2, > or > > -2. So naturally I'd do, > > > > > which(x<-2) > > Error in which(x <- 2) : argument to 'which' is not logical > > > > Oops, what happened? If you look up help pages for 'which', you'd > find > > no clue. > > > > What occurred in the parenthesis is that you've overidden your vector > x > > with a single value of 2, thanks to the assignment operator '<-'. > > > > This' a big problem not just because you might end up spending hours > > finding out what's wrong with such innocent expression. The worst > part > > is, you'd have lost your vector x forever. Just image if x is 1200 by > > 1200 matrix. > > > > HTH. > > > > H > > > > > > > > > > > > -----Original Message----- > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > > project.org] On Behalf Of li li > > Sent: Friday, June 18, 2010 10:01 AM > > To: Greg Snow > > Cc: r-help > > Subject: Re: [R] questions on some operators in R > > > > Thank you all for your kind reply! > > Hannah > > > > 2010/6/18 Greg Snow <greg.s...@imail.org> > > > > > Just to expand a little on David's reply. > > > > > > The & vs. && and | vs. || issue is really about where and how you > > plan to > > > use things. & and | work on vectors and are intended to be used to > > combine > > > logical vectors into a new logical vector (that can be used for > > various > > > things). && and || are used for program control, mainly in the > > condition of > > > if or while statements. The program flow versions have the benefit > > of > > > evaluating the left condition, then only evaluating the right > > condition if > > > needed (this can save some warning messages and time). Compare the > > > following commands: > > > > > > > x <- rnorm(100) > > > > any(x < 0) | any(log(x) < 0) > > > > any(x < 0) || any(log(x) < 0) > > > > > > > > > The '<-' operator is for assignment, the '=' is used to match > formal > > > arguments in functions to their values. In some cases where it is > > > unambiguous the '=' can be used in place of '<-' (see the help > page). > > But > > > you need to understand the difference since there are cases where > > they will > > > not do the same thing. > > > > > > > mean( x <- rnorm(100) ) > > > And > > > > mean( x = rnorm(100) ) > > > > > > Do not do the same thing (well part is the same, but there is a > > subtle but > > > significant difference). > > > > > > > mean( z <- rnorm(100) ) > > > And > > > > mean( z = rnorm(100) ) > > > > > > Are even more different. > > > > > > > > > > > > -- > > > Gregory (Greg) L. Snow Ph.D. > > > Statistical Data Center > > > Intermountain Healthcare > > > greg.s...@imail.org > > > 801.408.8111 > > > > > > > > > > -----Original Message----- > > > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > > > > project.org] On Behalf Of li li > > > > Sent: Wednesday, June 16, 2010 4:33 PM > > > > To: r-help > > > > Subject: [R] questions on some operators in R > > > > > > > > Hi all, > > > > I have two questions. Can some one give some help? > > > > > > > > The first question is regarding the pair of operators "&" and > > "&&". > > > > What > > > > is the > > > > difference between the two? > > > > > > > > The second question is regarding "<-" and "=". Usually we use > > > > "<-" as the assignment operator. I saw some people use "=". Is > > there > > > > any difference between the two. > > > > > > > > Thank you!! > > > > Hannah > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > ______________________________________________ > > > > 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- > > <http://www.r-project.org/posting-> > > > > guide.html > > > > and provide commented, minimal, self-contained, reproducible > code. > > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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. ______________________________________________ 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.