我正在尝试在 R 中调用系统函数。我使用的是 mac。如果我传递一个内置函数(例如 ln),它就没有问题:
command <- "ls"
cat(command, "\n")
try(system(command))
Run Code Online (Sandbox Code Playgroud)
我得到一个目录列表。
但是,如果我从第三方安装函数(例如二进制文件),它就不起作用(即使它在终端中起作用)。
command <- "bedtools ..."
cat(command, "\n")
try(system(command))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
sh: bedtool..:command not found
Run Code Online (Sandbox Code Playgroud)
你认为这是一个PATH问题吗?
谢谢!
确信您“安装”了该命令(它存在于某处的垃圾箱中)并在阅读您的评论后:
如果我打开函数二进制文件所在的 RStudio(例如 open -a RStudio),则它工作没有问题。
我猜这确实是一个 PATH 问题。一个可能的修复方法是:
Sys.setenv(PATH=paste(Sys.getenv("PATH"), "/the/bin/folder/of/bedtools", sep=":"))
Run Code Online (Sandbox Code Playgroud)
您的床具保存在哪里?即输出是什么
which bedtools
Run Code Online (Sandbox Code Playgroud)
如果它不在你的
usr/bin
Run Code Online (Sandbox Code Playgroud)
然后系统命令给出该错误。将 betools 保存在那里,它应该可以工作。
从系统帮助文件中它建议尝试
Sys.which
Run Code Online (Sandbox Code Playgroud)
首先在 shell 中输入命令,看看它是否能在系统中运行。