4

我有代码可以读取和处理我希望允许多个用户使用的数据,但我不想让他们看到代码。

有没有办法使用 R 或 RStudio 做到这一点?

4

2 回答 2

9

一种选择是使用 Rserve 之类的工具将您的功能公开为服务。但是,这将要求您托管为您的用户运行代码的服务器。

于 2012-04-20T19:20:00.960 回答
3

当您使用 R 代码时,imo 无法向用户隐藏代码。您可以分发包的二进制包,但这仍然包括明文形式的 R 代码。此外,当代码加载到 R 中时,用户可以通过在不带括号的命令行上键入任何函数来查看其源代码。

我不确定你为什么要隐藏代码。也许您可以在您的问题中对此发表评论,以使事情更清楚。此外,除了隐藏代码之外,我们也许能够提出可能回答您问题的解决方案。如果隐藏代码是为了让没有经验的用户了解实现细节,您可以执行以下操作。

  1. 为希望向用户提供其功能的函数创建包装函数。这样的包装函数可能类似于:

    spam_wapper = function(a, b) {
       return(.spam(a = a, b = b))
    })
    
  2. 使所有非包装函数对用户不可见。他们仍然可以通过明确说明包的命名空间来访问它们:

    pkgname::.spam
    

    但更难找到代码,使得没有经验的 R 程序员更难找到。但是一旦他们学会了诀窍,这将不再有用。

如果您的原因是因为您想使用您的 R 代码赚钱,请隐藏您精心制作的 R 代码(在这种情况下,我肯定会分享它:)),或者隐藏您的代码以防止任何可能窃取您想法的竞争。在这种情况下,@baptiste 的建议可能会奏效。但我想用 Fortran、C 或 C++ 重写你的代码需要大量的工作......我想说,只要给他们源代码......

于 2012-04-21T14:22:33.440 回答