R几年来我一直是一个活跃的用户,而且总是让我感到困惑.安装软件包(例如dplyr)时,必须将软件包的名称指定为字符串即ie
install.packages("dplyr")
Run Code Online (Sandbox Code Playgroud)
而不是
install.packages(dplyr)
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义,因为它"dplyr"会作为包的名称传递而不是作为对象传递,这将在dplyr没有引号的情况下隐含.
但是,当我们去加载库时,字符串和对象版本都会通过并加载包.以下两个都正确加载包:
library("dplyr")
detach("package:dplyr", unload=TRUE)
library(dplyr)
Run Code Online (Sandbox Code Playgroud)
dplyr在我的工作区中没有命名对象,我不明白为什么这两个base函数会有不同的语法.我也不明白为什么没有引号的版本不会评估该对象.例如
dplyr <- "mada"
install.packages(dplyr)
library(dplyr)
Run Code Online (Sandbox Code Playgroud)
上面的安装 mada,但加载 dplyr,即使dplyr是一个评估的对象"mada".请注意,我RStudio在Mac OS 10.10.4上的v.0.99.467中工作,如果这很重要的话.这有什么原因,还是只是功能有所不同?
我刚刚度假一个月,所以无法说明发生这种情况的确切点,但是R从官方的Arch repos现在无法启动,引用
/usr/lib64/R/bin/exec/R: error while loading shared libraries:
libgfortran.so.3: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我认为也许一个符号链接被错误地放置或销毁,所以我查看了/ usr/lib来尝试找到它:
ls -halt /usr/lib/libgfortran.so.*
lrwxrwxrwx 1 root root 20 May 16 03:01 /usr/lib/libgfortran.so.4 -> libgfortran.so.4.0.0
-rwxr-xr-x 1 root root 7.1M May 16 03:01 /usr/lib/libgfortran.so.4.0.0
Run Code Online (Sandbox Code Playgroud)
已libfortran.so.3被libgfortran.so.4Arch 取代?如果是这样,是否有任何可能的解决方法R来运行旧版本?
pacman -Qi r
Name : r
Version : 3.4.0-2
Description : Language and environment for statistical computing and graphics
Architecture : x86_64
URL : http://www.r-project.org/
Licenses …Run Code Online (Sandbox Code Playgroud) 我正在处理 SGE 集群,但在使用 qsub 电子邮件通知系统时遇到了一些问题。我的所有工作都运行良好,但我似乎无法修改默认行为以仅在中止工作时通知。-M 标志工作正常,当作业中止时我会收到一封电子邮件,但是我想在作业开始、结束、中止或暂停时收到一封电子邮件。我在我的脚本中使用了以下标志(以及更多),我错过了什么愚蠢的东西吗?
#!/bin/bash
#$ -S /bin/bash
#$ -M email@server
#$ -m beas
program
Run Code Online (Sandbox Code Playgroud)
当我尝试以下操作时它也不起作用:
qsub -M email@server -m baes script.sh
Run Code Online (Sandbox Code Playgroud)
这是我应该与我的集群系统管理员一起解决的问题,还是我做错了什么?
谢谢你的帮助。
我有Makefile以下格式:
.PHONY: all
target1 := file1
target2 := $(target1).txt
all: $(target2)
$(target1): prerequisite1
recipe
$(target2): $(target1)
recipe
Run Code Online (Sandbox Code Playgroud)
target2取决于target1,make并将正确替换字符串以创建文件名。但是,在我的系统上,输入文件名和路径非常繁琐;我想知道是否有任何方法可以target1在引用其名称而不是文件路径,而是变量.
例如,我希望能够调用:
$ make $(target1)
Run Code Online (Sandbox Code Playgroud)
而不是
$ make path/to/file1
Run Code Online (Sandbox Code Playgroud)
我想这样做是因为我对变量进行了相当多的更改,并且我的结构Makefile有许多中间体,这些中间体有时很难追溯到它们的文字文件路径,但make根据我分配给它们的变量名很容易找到。
以上不起作用,我已经阅读了该man页面,并在此处和 Google 上进行了大量搜索。只是想知道是否有人以前遇到过这个问题并找到了解决方案。