# [R] If Loop I Think

PIKAL Petr petr@p|k@| @end|ng |rom prechez@@cz
Wed Oct 23 09:40:20 CEST 2019

```Hi

***do not think in if or if loops in R***.

to elaborate Jim's solution further

With simple function based on logical expression
fff <- function(x) (x!="")+0

you could use apply

t(apply(phdf[,3:5], 1, fff))

phdf[, 6:8] <- t(apply(phdf[,3:5], 1, fff))

Regarding some tutorial

Basic stuff is in R-intro, there is excellent documentation to each function.

And as R users pool is huge, you could simply ask Google
e.g.
r change values based on condition

Cheers
Petr

> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Jim Lemon
> Sent: Wednesday, October 23, 2019 12:26 AM
> To: Phillip Heinrich <herd_dog using cox.net>
> Cc: r-help <R-help using r-project.org>
> Subject: Re: [R] If Loop I Think
>
> Hi Philip,
> Try this:
>
> text="Row Outs RunnerFirst RunnerSecond RunnerThird R1 R2 R3
> 1 0
> 2 1
> 3 1
> 4 1 arenn001
> 5 2 arenn001
> 6 0
> 9 0 goldp001 polla001 perad001
> 10 0  lambj001 goldp001
> 11 1  lambj001 goldp001
> 12 2   lambj001
> 13 0
> 14 1       ",
> phdf\$R1<-ifelse(nchar(phdf\$RunnerFirst) > 0,1,0)
> phdf\$R2<-ifelse(nchar(phdf\$RunnerSecond) > 0,1,0)
> phdf\$R3<-ifelse(nchar(phdf\$RunnerThird) > 0,1,0)
>
> Jim
>
> On Wed, Oct 23, 2019 at 7:54 AM Phillip Heinrich <herd_dog using cox.net>
> wrote:
> >
> >       Row Outs RunnerFirst RunnerSecond RunnerThird R1 R2 R3
> >       1 0
> >       2 1
> >       3 1
> >       4 1 arenn001
> >       5 2 arenn001
> >       6 0
> >       8 0 polla001 perad001
> >       9 0 goldp001 polla001 perad001
> >       10 0  lambj001 goldp001
> >       11 1  lambj001 goldp001
> >       12 2   lambj001
> >       13 0
> >       14 1
> >
> >
> >
> > With the above data, Arizona Diamondbacks baseball, I’m trying to put
> zeros into the R1 column is the RunnerFirst column is blank and a one if the
> column has a coded entry such as rows 4,5,7,8,& 9.  Similarly I want zeros in
> R2 and R3 if RunnerSecond and RunnerThird respectively are blank and ones
> if there is an entry.
> >
> > I’ve tried everything I know how to do such as “If Loops”, “If-Then loops”,
> “apply”, “sapply”, etc.  I wrote function below and it ran without errors but I
> have no idea what to do with it to accomplish my goal:
> >
> > R1 <- function(x) {
> >   if (ari18.test3\$RunnerFirst == " "){
> >        ari18.test3\$R1 <- 0
> >        return(R1)
> >          }else{
> >            R1 <- ari18.test3\$R1 <- 1
> >            return(R1)
> >          }
> >    }
> >
> > The name of the data frame is ari18.test3
> >
> > On a more philosophical note, data handling in R seems to be made up of
> thousands of details with no over-riding principles.  I’ve read two books on R
> and a number of tutorial and watched several videos but I don’t seem to be
> making any progress.  Can anyone suggest videos, or tutorials, or books that
> might help?  Database stuff has never been my strong point but I’m
> determined to learn.
> >
> > Thanks,
> > Philip Heinrich
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help