【问题标题】:Error in calculation while looping through the data循环数据时计算错误
【发布时间】:2021-04-12 18:17:30
【问题描述】:

我有一个包含 3 个变量的数据框,我试图计算在公司上市的第一年可以用 100 英镑购买多少个chares

数据看起来像

YEAR_END COMPANY_NUMBER CLOSE_SHARE_PRICE NUMBER_OF_SHARES 2002 年 12 月 31 日 22705 7.5 0
2003 年 12 月 31 日 22705 6.55 0 2004 年 12 月 31 日 22705 6.55 0 2005 年 12 月 31 日 22705 不适用 0 2006 年 12 月 31 日 22705 不适用 0 2007 年 12 月 31 日 22705 不适用 0 2008 年 12 月 31 日 22705 不适用 0 2004 年 12 月 31 日 11356069 1.09 0 2002 年 12 月 31 日 SC192761 2.42 0 2003 年 12 月 31 日 SC192761 0.9 0 2004 年 12 月 31 日 SC192761 不适用 0 2005 年 12 月 31 日 SC192761 不适用 0 2006 年 12 月 31 日 SC192761 不适用 0 2007 年 12 月 31 日 SC192761 不适用 0 2002 年 12 月 31 日 10395804 1.04 0 2003 年 12 月 31 日 10395804 1.04 0 2004 年 12 月 31 日 10395804 不适用 0 2003 年 12 月 31 日 5625107 0.02 0 2004 年 12 月 31 日 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]) == is.na(PLC_Return[i + 1, 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])
    

谁能帮我解决这个问题?

提前致谢。

亲切的问候

阿森

【问题讨论】:

    标签: r parentheses extra


    【解决方案1】:

    可能是适当的缩进,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])
       }
    }
    

    【讨论】:

    • 好吧,我确实是从手机上发布的,所以缩进可能不合适
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 2015-07-14
    • 1970-01-01
    • 2022-01-06
    • 2013-08-22
    • 2020-12-22
    • 2019-09-30
    相关资源
    最近更新 更多