为什么我不能在R中调用明显可以在终端中工作的系统功能?

时间:2014-09-26 17:56:23

标签: r system

我正在尝试在R中调用系统函数。我正在使用mac。如果我传递一个内置函数(例如ln),它没有问题:

command <- "ls"
cat(command, "\n")
try(system(command))

我得到了一个目录列表。

但是,如果我从第三方安装功能(例如二进制文件),它就不起作用(即使它在终端中有效)。

command <- "bedtools ..."
cat(command, "\n")
try(system(command))

我收到以下错误:

sh: bedtool..:command not found

你认为这是一个PATH问题吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

确定您已安装&#39;命令(它存在于bin中某处)并在阅读完评论后:

  

如果我打开函数二进制文件所在的RStudio(例如open -a RStudio),它就没问题了。

我猜这确实是一个PATH问题。可能的解决方法是:

Sys.setenv(PATH=paste(Sys.getenv("PATH"), "/the/bin/folder/of/bedtools", sep=":"))

答案 1 :(得分:0)

您的床上用品在哪里保存?即什么是

的输出
which bedtools

如果它不在您的

usr/bin

然后系统命令给出该错误。在那里保存betools它应该工作。

从系统帮助文件中建议尝试

Sys.which
首先在shell输入上输入

命令以查看它是否可以在系统中运行。