[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