[R] Looping through data error

jim holtman jho|tm@n @end|ng |rom gm@||@com
Tue Apr 13 15:29:43 CEST 2021


Your code was formatted incorrectly.  There is always a problem with the
'else' statement after an 'if' since in R there is no semicolon to mark the
end of a line.  Here might be a better format for your code.  I would
recommend the liberal use of "{}"s when using 'if/else'



i <- 0

for (i in 1:(nrow(PLC_Return) - 1)) {
  if (i == 1) {
    NUMBER_OF_SHARES[i] = 100 / is.na(CLOSE_SHARE_PRICE[i])
  } else {
    if (is.na(PLC_Return[i, 1]) == is.na(PLC_Return[i + 1, 1]) {
      NUMBER_OF_SHARES[i] = 0
    } else {
      NUMBER_OF_SHARES[i] = 100 / is.na(CLOSE_SHARE_PRICE[i])
    }
  }
}


Jim Holtman
*Data Munger Guru*


*What is the problem that you are trying to solve?Tell me what you want to
do, not how you want to do it.*


On Tue, Apr 13, 2021 at 5:51 AM e-mail ma015k3113 via R-help <
r-help using r-project.org> wrote:

> Dear All,I have a dataframe with 4 variables and I am trying to calculate
> how many shares can be purchased with £100 in the first year when the
> company was listed
>
> The data looks like:
>
> COMPANY_NUMBER YEAR_END_DATE CLOSE_SHARE_PRICE  NUMBER_OF_SHARES
> 22705                                30/09/2002
> NA                                 0
> 22705                                30/09/2004
>  NA                                  0
> 22705                                30/09/2005
> 6.55                                 0
> 22705                                30/09/2006
> 7.5                                   0
> 22705                                30/09/2007
> 9.65                                 0
> 22705                                30/09/2008
> 6.55                                 0
> 1091347                            31/01/2010                        8.14
>                                0
> 1091347                             31/01/2011                      11.38
>                                0
> 11356069                           30/06/2019                      1.09
>                                0
> SC192761                         31/01/2000                         NA
>                                0
> SC192761                         31/01/2001                         NA
>                                0
> SC192761                          31/01/2002                        NA
>                                0
> SC192761                         31/01/2004                         NA
>                                0
> SC192761                         31/01/2005                         NA
>                                0
> SC192761                          31/01/2006                      1.09
>                                0
> SC192761                          31/01/2008                      1.24
>                                0
> SC192761                          31/01/2009                       0.9
>                                 0
> SC192761                          31/01/2010                     1.14
>                               0
> SC192761                           31/01/2011                    1.25
>                               0
> SC192761                          31/01/2012                     1.29
>                               0
>
>
> The code I have written is
>
> i <- 0
>
> for (i in 1:(nrow(PLC_Return)-1))
> if (i == 1)
> {
> NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
> } else if
> (is.na(PLC_Return[i, 1]) == is.na(PLC_Return[i + 1, 1])
> {
> NUMBER_OF_SHARES[i]=0
> } else
> {
> NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
> }
>
>
> The error I get is Error: unexpected 'else' in:
>
> " NUMBER_OF_SHARES[i] = 0
> } else"
> > {NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])}
> >
> > }
> Error: unexpected '}' in "}"
>
>
> Don't know how to fix it-any help will be appreciated.
>
>
> Kind regards
>
>
> Ahson
>         [[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
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list