将Excel函数转换为R

我有两个Excel函数,我试图转换成R:

numberShares =IF(AND(N213="BOH",N212="BOH")=TRUE,P212,IF(AND(N213="BOH",N212="Sell")=TRUE,ROUNDDOWN(Q212/C213,0),0)) marketValue =IF(AND(N212="BOH",N213="BOH")=TRUE,C213*P212,IF(AND(N212="Sell",N213="Sell")=TRUE,Q212,IF(AND(N212="BOH",N213="Sell")=TRUE,P212*C213,IF(AND(N212="Sell",N213="BOH")=TRUE,Q212)))) 

被引用的单元格包括:

  • c =股票的收盘价
  • n =“买入或持有”或“卖出”的头寸价值
  • p =股份数量
  • q =市场价值,假设初始股本为10,000美元(股数*收盘价)

和我试图重新创build的两个输出列的顶部看起来像这样: 输出

到目前为止,在RI已经构build了一个必要的四列数据框 : data.frame

我只是不知道如何编写将填充股票和市场价值列的function。 为了循环? 如果别的?

再次谢谢你!!

隐瞒AND()的中缀“&”; “=”改为“==”; 和IF的ifelse(),你在一半。 问题在于将你的单元格引用转换为数组或matrix引用,为了这个任务,我们需要更好地描述数据布局:

 numberShares <- ifelse( N213=="BOH" & N212=="BOH", #Perhaps PosVal[213] == "BOH" & PosVal[212] == "BOH" # ... and very possibly the 213 should be 213:240 and the 212 should be 212:239 P212, ifelse( N213=="BOH" & N212=="Sell" , round(Q212/C213, digits=0), 0)) 

(你似乎正在返回似乎有点令人怀疑的不相称的值)假设这是正确的代码,尽pipe我怀疑下一个翻译涉及在这个结构中应用相同的replace(虽然你似乎在最后一个IF函数中缺less一个else结果:

 marketValue <- IF( AND(N212="BOH", N213="BOH")=TRUE, C213*P212, IF(AND(N212="Sell",N213="Sell")=TRUE, Q212, IF( AND(N212="BOH",N213="Sell")=TRUE, P212*C213, IF(AND(N212="Sell",N213="BOH")=TRUE, Q212)))) 

(你对AND( .,.)=TRUE是我认为Excel中不必要的,在R中肯定是不必要的)

Interesting Posts