我正在尝试加载RQuantLib,但是我收到以下错误:
> require(RQuantLib)
Loading required package: RQuantLib
Error : .onLoad failed in loadNamespace() for 'RQuantLib', details:
call: if (is.character(qc) && nchar(qc) > 1) {
error: missing value where TRUE/FALSE needed
In addition: Warning message:
running command 'bash -c 'type -p quantlib-config' 2>/dev/null' had status 1
我对编程很新,所以我不确定这意味着什么。我在Mac OS Maverick环境下工作,我下载了最新版本的RQuantLib(0.3.12),“R Package Installer”表示已安装。 (我使用“R CMD INSTALL RQuantLib”从终端安装了RQuantLib,因为在R中使用install.packages()不起作用 - 它给我一个错误,说明QuantLib没有配置,虽然从终端运行良好。)我从R控制台运行R. QuantLib工作正常,Rcpp也是如此。
我检查了RQuantLib文件夹中的“NAMESPACE”文档,它说:
import(methods)
importFrom(Rcpp, Rcpp.plugin.maker)
useDynLib(RQuantLib)
exportPattern("*.default")
export(
##--arrays.R
"oldEuropeanOptionArrays",
"EuropeanOptionArrays",
"plotOptionSurface",
##--asian.R
"AsianOption",
##--bermudan.R
"BermudanSwaption",
"summary.G2Analytic",
"summary.HWAnalytic",
"summary.HWTree",
"summary.BKTree",
##--bond.R
"ZeroCouponBond",
"ZeroPriceByYield",
"ZeroYield",
"FixedRateBond",
"FixedRateBondYield",
"FixedRateBondPriceByYield",
"FloatingRateBond",
"ConvertibleZeroCouponBond",
"ConvertibleFixedCouponBond",
"ConvertibleFloatingCouponBond",
"CallableBond",
"FittedBondCurve",
##--calendars.R
"isBusinessDay", "businessDay",
"isHoliday",
"isWeekend",
"isEndOfMonth",
"getEndOfMonth", "endOfMonth",
"adjust",
"advance",
"businessDaysBetween",
"getHolidayList", "holidayList",
"setCalendarContext",
##--dayCounter.R
"dayCount",
"yearFraction",
"setEvaluationDate",
##--discount.R
"DiscountCurve",
"plot.DiscountCurve",
##--implied.R
"EuropeanOptionImpliedVolatility",
"AmericanOptionImpliedVolatility",
"BinaryOptionImpliedVolatility",
##--option.R
"EuropeanOption",
"AmericanOption",
"AmericanOption.default",
"BinaryOption",
"BarrierOption"
)
S3method("plot", "Option")
S3method("print", "Option")
S3method("summary", "Option")
S3method("plot", "Bond")
S3method("print", "Bond")
S3method("summary", "Bond")
如果我尝试指定终端写入的路径,它在安装RQuantLib时需要它,我会收到以下错误:
> require('RQuantLib', lib.loc = "C:/Users/dealmer/Library/R/3.1/library/RQuantLib/libs")
Loading required package: RQuantLib
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
no library trees found in 'lib.loc'
那么,我是否需要从那里移动到其他R库的位置? (在其他R库文件夹所在的文件夹中已经有一个名为“RQuantLib”的文件夹,例如我在那里找到了NAMESPACE文档)终端给我的路径我无法在Finder窗口中跟踪但是因为它没有显示“库”文件夹,我不知道如何做到这一点。)
这就是.libPaths()给我的东西:
> .libPaths()
[1] "/Users/dealmer/Library/R/3.1/library"
[2] "/Library/Frameworks/R.framework/Versions/3.1/Resources/library"
R库位于[2]。
我尝试过谷歌搜索,但我找不到任何有用的东西。任何帮助将非常感激。谢谢 - Dom
答案 0 :(得分:1)
我认为问题是在Linux上我们在quantlib-config
中有$PATH
:
edd@max:~$ quantlib-config --help
Usage: quantlib-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] \
[--libs] [--cflags]
edd@max:~$ quantlib-config --version
1.4
edd@max:~$
我没有OS X专栏,所以我依靠你之类的人帮助进行更好的配置设置。如果您将quantlib-config
复制(或软链接)到您的路径(例如/usr/local/bin
),或者调整$PATH
,否则它应该可以正常工作,否则包含它所在的目录。
答案 1 :(得分:0)
我遇到了同样的问题,经过几个小时的努力,我设法使用了一些不太严格的东西,但它确实有效!
R似乎有一些评估system("bash -c 'type -p quantlib-config'")
的问题。
安装QuantLib后,在终端中键入命令bash -c 'type -p quantlib-config'
,为我们提供了我的quantlib-config路径/opt/local/bin/quantlib-config
。
所以我回到了RQuantLib(版本0.4.0)的源文件夹,并将文件R/inline.R
中的qc替换为:
qc <- as.character("/opt/local/bin/quantlib-config")
使用终端命令R CMD install RQuantLib/
重建包。
正如我所说,不是很性感,但它有效。
重启R和Rstudio是必要的。
希望它有所帮助!