循环遍历数据时计算错误

问题描述

我有一个包含 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])
   }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...