【问题标题】:nix-shell with R interpretter and submodules带有 R 解释器和子模块的 nix-shell
【发布时间】:2016-05-31 12:02:19
【问题描述】:

我可以在 nix-shell 中使用带有所需子模块(例如 ggplot2)的 R 吗?

例如,使用带有子模块的 Python:

nix-shell -p python34 python34Packages.pandas

但是,我似乎看不出如何用 R 做同样的事情。

nix-shell -p R

给了我一个普通的 R,但是子模块呢?我不确定我是否足够了解使用 nix-shell 来评估 nix 表达式,但是 this 可以从 nix-shell 中用作命令吗?

注意:我的偏好shell.nixdefault.nix 中弹出上述链接中的表达式。而是作为单个命令。

【问题讨论】:

  • nix-shell -p R rPackages.dplyr rPackages.ggplot2 有什么问题?
  • @Alex 简单多了。我看到了链接的文件,并认为这行不通。你能把它作为答案吗?

标签: r nix nixos


【解决方案1】:

您可以使用 -E 标志将 nix 表达式传递给 nix-shell。所以以下是有效的:

nix-shell -E 'with import <nixpkgs> {}; rWrapper.override {packages = with rPackages; [ggplot2 reshape2];}'

【讨论】:

  • 我们确实需要改进 nix CLI。虽然上述解决了问题,但它太复杂了。
  • 是的,但我也在做一些比平常更复杂的事情。通常你会使用shell.nix 文件,但我直接启动以用作替换/包装器以在 Emacs 的 org-mode babel 中调用 R 命令。
【解决方案2】:

您可以使用与 Python 示例中相同的方法:

nix-shell -p R rPackages.dplyr rPackages.ggplot2

【讨论】:

  • 太好了,非常感谢。使用 rWrapper 的文档让我有点困惑。
猜你喜欢
  • 1970-01-01
  • 2017-10-18
  • 2018-01-15
  • 2022-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多