[R] Looping through data error

e-mail ma015k3113 m@015k3113 @end|ng |rom b|ueyonder@co@uk
Tue Apr 13 18:11:21 CEST 2021


Jim, thanks for taking the time to look into this. Yes, these if else statements are so confusing.

I tried your amended scode and it does not work. The error are as follows:


Error: unexpected '}' in " }"
> NUMBER_OF_SHARES[i] = 100 / is.na(CLOSE_SHARE_PRICE[i])
> }
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in "}"
>

I have spent so much time on this-hopefully I will come to grips sooner or later. In the mean time any further suggestion?


Kind regards


Ahson

> On 13 April 2021 at 14:29 jim holtman <jholtman using gmail.com> wrote:
> 
>     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 /http://is.na (CLOSE_SHARE_PRICE[i])
>       } else {
>         if (http://is.na (PLC_Return[i, 1]) ==http://is.na (PLC_Return[i + 1, 1]) {
>           NUMBER_OF_SHARES[i] = 0
>         } else {
>           NUMBER_OF_SHARES[i] = 100 /http://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 mailto: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/http://is.na (CLOSE_SHARE_PRICE[i])
> >         } else if
> >         (http://is.na (PLC_Return[i, 1]) ==http://is.na (PLC_Return[i + 1, 1])
> >         {
> >         NUMBER_OF_SHARES[i]=0
> >         } else
> >         {
> >         NUMBER_OF_SHARES[i] = 100/http://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/http://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 mailto: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