如何解决循环遍历数据时计算错误
我有一个包含 3 个变量的数据框,我正在尝试计算在公司上市的第一年用 100 英镑可以购买多少个字符
数据看起来像
YEAR_END COMPANY_NUMBER CLOSE_SHARE_PRICE NUMBER_OF_SHARES
31/12/2002 22705 7.5 0
31/12/2003 22705 6.55 0
31/12/2004 22705 6.55 0
31/12/2005 22705 不适用 0
31/12/2006 22705 不适用 0
31/12/2007 22705 不适用 0
31/12/2008 22705 不适用 0
31/12/2004 11356069 1.09 0
31/12/2002 SC192761 2.42 0
31/12/2003 SC192761 0.9 0
31/12/2004 SC192761 不适用 0
31/12/2005 SC192761 不适用 0
31/12/2006 SC192761 不适用 0
31/12/2007 SC192761 不适用 0
31/12/2002 10395804 1.04 0
31/12/2003 10395804 1.04 0
31/12/2004 10395804 不适用 0
31/12/2003 5625107 0.02 0
31/12/2004 5625107 0 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])
}
基本上是计算第一个公司年度购买的股票。然后在发送年份我不需要计算。
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])
{
NUMBER_OF_SHARES[i]=0
} else
{
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
}
{
-
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
谁能帮我解决这个问题?
提前致谢。
亲切的问候
阿森
解决方法
可能是适当的缩进,for 循环块可能会有所帮助
for (i in 1:(nrow(PLC_Return)-1))
{
if (i == 1)
{
NUMBER_OF_SHARES[i] =
1000/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] =
1100is.na(CLOSE_SHARE_PRICE[i])
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。