Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尽管有错误检查和简单示例,for循环计算IRR时的R替换错误_R_Loops - Fatal编程技术网

尽管有错误检查和简单示例,for循环计算IRR时的R替换错误

尽管有错误检查和简单示例,for循环计算IRR时的R替换错误,r,loops,R,Loops,我又迷路了,非常感谢你的帮助 我有以下数据框: df <- data.frame(ID=c(1,2,3,4), year=c(2010,2011,2012,2013), time=c(4,6,7,2), Value1=c(10,20,30,40), Value2=c(100,200,300,400)) df$IRR <- NA library(FinancialMath) for (i in 1:length(df$ID)){ df$IRR[i] <- IRR(cf0=d

我又迷路了,非常感谢你的帮助

我有以下数据框:

df <- data.frame(ID=c(1,2,3,4), year=c(2010,2011,2012,2013), time=c(4,6,7,2), Value1=c(10,20,30,40), Value2=c(100,200,300,400))
df$IRR <- NA

library(FinancialMath)
for (i in 1:length(df$ID)){
  df$IRR[i] <- IRR(cf0=df$Value1[i],cf=df$Value2[i],times=df$time[i])
}
该函数不会在我的数据帧列表中运行。我检查了函数是否有错误,如果我的函数(包含IRR for循环)不是问题所在,我将非常感谢您的帮助

我不知道我对这个问题的描述是否足够好,但如果你能给我一些你能提出的问题,我将不胜感激

原始数据中的我的df是一个修改后的原始pdata.frame(包:plm),它在进入IRR for循环之前转换为正常数据帧。以前的pdata.frame中的某些属性是否可能会模糊my for循环或自身函数的功能

我到处搜索,以解决相当普遍的
要替换的项目数量不是替换长度的倍数的问题,但没有找到解决方案

谢谢你的帮助和问候


科克

你能发布一个产生这些错误的代码示例吗?文档中有说明:
使用多根函数来求解一系列现金流给出的方程,这意味着在IRR为负的情况下,可能会返回多个答案。
-多个值不适合单个单元格,只要它们没有转换为列表或粘贴在一起成为字符串(它们的选项可能更多)。因此,R将结果值的第一个元素放在单元格中,并忽略函数的其他结果。(例如,将Value2设置为负值,您将得到两个值)Hello@tamtam,就是这样!非常感谢。我注意到它也没有以我希望的方式处理负irr,因此我应用了jrvFinance::irr,并允许我自己映射到数据帧列表上的函数也使用mably()为NA(在我的情况下有意义)。不过,你的回答确实有帮助!在我的脑海里,它必须是内部收益率公式,但无法修复它。非常感谢。
Error in `$<-.data.frame`(`*tmp*`, "IRR", value = NA) : 
  replacement has 1 row, data has 0
In addition: Warning message:
In df$IRR[i] <- IRR(cf0 = df$Value1[i], cf = df$Value2[i],  :