R을 사용하는 JMP의 XIRR?모든,
나는 JMP에서 XIRR 계산을 처리 할 수있는 솔루션을 찾고 있었다. 진행중, @ron_horne 그의 일의 일부를 충분히 친절하게 나눴습니다.
계산을 위해 R 내의 일부 패키지를 활용하는 경로를 따라갔습니다. 또한 XIRR 및 XNPV 기능에 대한 기능 요청을 JMP의 차후 버전에 배포 할 예정입니다. 그러나, 제가 알아 차린 현재의 문제는 제가 활용하고있는 R 패키지가 예상 한 결과를 얻지 못하는 것과 제가 혼란 스럽다는 것입니다. anyobdy가 좋아하는지 궁금해하기 @ih 또는 커뮤니티의 다른 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가 아닌 값을 반환해야합니다. 이 문제를 해결할 수있는 생각이나 지침이 있으면 감사하겠습니다.
재 : XIRR JMP에서 R을 사용하여? @ 달리아 _ 워킨스 , @Justin_Chilton - JMP에서 XIRR을 시도한 사람이 있습니까?
재 : XIRR JMP에서 R을 사용하여? @ih ,
나는 예로서 현금 흐름의 샘플만을 게시했다. 그러나, 나는 당신의 충고의 가치를 보았습니다, 왜냐하면 나는 sapply가 사용되지 않을 때 오류를 보았 기 때문입니다. uniroot 오류 팝업 및 나는 혼자 -ve 현금 때문에 생각. 그것을 피하기 위해 trycatch를 제자리에 두었습니다.
흥미로운 점은 Excel이 이러한 문제를 해결하고 결과를 제공 할 수 있다는 것입니다. 조언을 주셔서 감사합니다. 저장소를 통해 살펴 보겠습니다.
재 : XIRR JMP에서 R을 사용하여?안녕 Uday,
불행히도 우리는 IRR 계산을 사용하므로 R 함수에별로 도움이되지 않습니다. 즉, 프로젝트의 현금 흐름이 모두 너무 부정적이어서 믿을 수 없을만큼 큰 규모가 필요합니다. 부정 IRR을 사용하여 해당 프로젝트의 NPV를 0으로 만듭니다. 솔버가 수렴하는 데 더 많은 양의 현금 흐름이 필요합니다 (IRR은 직접 계산되지 않고 NPV를 0으로 설정하는 돈의 시간 값을 찾습니다).
xirr 함수 호출을 sapply로 래핑하면 에러를 감출 수 있습니다. xirr을 직접 호출하면 솔버와 관련된 오류가 표시됩니다.
nvm 패키지가 미러링 된 것처럼 보입니다. 이리 패키지가하는 일을 이해하는 데 도움이 될 수 있습니다. 예를 들어, xnpv의 정의를 사용하여 i를 조정하여 irr을 수동으로 찾을 수 있습니다.
i <- .01
sum(CF / ((1 + i) ^ (as.integer(d - d[1]) / 365)))
JMP에는 수식 해법이 있으므로 JSL에서이를 구현하는 것이 가능해야합니다.