Rを使用してJMPでXIRR?すべて、
私はJMPでXIRR計算を処理するための解決策を探していました。過程の中で、 @ron_horne 彼の作品のいくつかを共有するのに十分親切でした。
私は計算のためにR内のいくつかのパッケージを利用するという道をたどりました。また、XIRRおよびXNPV機能を将来のバージョンのJMPにデプロイするという機能要求も出しました。しかし、私が気づいた現在の問題は、私が利用しているRパッケージが私が期待する結果を生み出さないことであり、それは私を混乱させるようなものです。誰もが好きなら疑問に思うあああるいは、コミュニティの他のJMPユーザーは、XIRR計算に成功することで、この道を進んで行くか、または別の方向に進んで成功を見ています。
RConn = R Connect();
ConnFlag = R Is Connected();
If(ConnFlag,
R Submit("
# Reprex
# Attach desired packages
suppressPackageStartupMessages(library(tvm))
# Provide input data
CF <- c(-78662, -32491, -32492, 7651, 40300)
d <- as.Date(c('2019-06-30', '2019-09-30', '2019-12-31', '2020-03-31', '2020-06-30'))
# Call the XIRR Function
Res1 <- vector()
Res1 <- sapply(1:length(d), function(i) {
tryCatch({
expr = xirr(i, CF[1:i],
d[1:i])
}, error = function(i) { return(NA) })
})
# Print Results
#print(Res1)
");
Results = R Get(Res1);
RConn << disconnect;
);
上記の計算では、i = 4までNAを返す必要がありますが、キャッシュフローに符号の変化が見られると、Excelとは異なりNA以外の値が返されます。これを修正するための任意の考えやガイダンスは大歓迎です。
再:Rを使用してJMPでXIRR? @ダリアワトキンス 、 @Justin_Chilton - あなたのどちらかがJMPでXIRRを試みましたか?
再:Rを使用してJMPでXIRR?ああ 、
例として、キャッシュフローのサンプルのみを掲載しました。しかし、sapplyが使用されていないとエラーが発生するので、私はあなたのアドバイスの価値を見ます。 unirootエラーがポップアップ表示され、私はそれが-veキャッシュフローだけのためであると思いました。それを回避するために、私はtrycatchを配置しました。
興味深いことに、Excelはこれらの問題に取り組み、結果を提供することができます。しかし、アドバイスをありがとう - 彼らのレポジトリも調べます。
再:Rを使用してJMPでXIRR?こんにちは。
残念ながら、私たちは独自のIRR計算を使っているので、私はR関数の助けにはなりません。 とは言っても、あなたのプロジェクトのキャッシュフローは非常に否定的なので、あなたは非常に大きなものが必要になるでしょう。負そのプロジェクトのNPVをゼロにするためのIRR ソルバーを収束させるには、より積極的なキャッシュフローが必要になる可能性があります(IRRは直接計算されるのではなく、代わりにNPVをゼロに設定するお金の時間的価値を見つける)。
xirr関数呼び出しをsapplyでラップするとエラーが隠れる可能性があることに注意してください。直接xirrを呼び出すと、ソルバーに関連したエラーが表示されます。
nvmパッケージがミラーリングされているようです。ここにこれは、パッケージが何をしているのかを理解するのに役立ちます。 たとえば、inを調整して手動でirrを見つけるには、xnpvの定義を使用できます。
i <- .01
sum(CF / ((1 + i) ^ (as.integer(d - d[1]) / 365)))
JMPは方程式ソルバーを持っているのでJSLでこれを構築することは可能であるべきです、私はそれで遊んでいません。