我正在编写一个R包,您可以在其中创建网络并以不同的文件类型输出它们。我找到了包SVGRTipsDevice,它可用于创建包含工具提示和超链接的SVG图片,我非常喜欢。我把它作为输出选项之一包含在我的包中,使其不是我的包的一个重要部分,但它仍然是它的一部分(我想保留它)。
现在的问题是,此软件包仅适用于32位用户。因为我的软件包依赖于它,64位用户无法安装它。似乎我要么必须使我的软件包仅限32位或删除SVG功能(目前我选择后者上传到CRAN,并在我的网站上链接到完整的软件包)。
有没有办法以不同的方式做到这一点?比如让任何人都可以安装软件包,只是为32位用户提供SVG功能吗?
答案 0 :(得分:6)
Sys.info()
机器类型:
所以在我的机器上:
Sys.info()["machine"]
machine
"x86_64"
编辑我相信它告诉我们硬件的架构,而不是R是32位还是64位。因此,如果用户拥有64位硬件且运行32位R,则上述代码仍会返回x86_64
正如Sacha指出的那样,更好的解决方案是运行:
R.Version()$arch
[1] "x86_64"
所以你可以看到我正在运行64位操作系统而且我正在运行64位版本的R。
答案 1 :(得分:4)
您的软件包的DESCRIPTION文件的Suggests:或Enhances:字段中列出的软件包不需要安装在用户的系统上以便安装软件包,因此32/64位用户可以安装软件包。您可以ok <- suppressWarnings(require(SVGToolTips)))
,可能在.onLoad
或类似情况下,而不是测试位数。
答案 2 :(得分:0)
您可以使用额外的功能制作packagename-32bit软件包。