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]]
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 at 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 at 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]]
Hello,
A close parenthesis is missing in the nd if.
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])
}
}
Hope this helps,
Rui Barradas
?s 13:51 de 13/04/21, e-mail ma015k3113 via R-help
escreveu:> 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 at 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.
>