小编Chr*_*s C的帖子

加载与安装库的语法.

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中工作,如果这很重要的话.这有什么原因,还是只是功能有所不同?

syntax r

17
推荐指数
3
解决办法
568
查看次数

R v3.4.0-2无法在Arch上找到libgfortran.so.3

我刚刚度假一个月,所以无法说明发生这种情况的确切点,但是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.3libgfortran.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)

r gfortran archlinux pacman-package-manager

12
推荐指数
1
解决办法
6840
查看次数

SGE 集群 qsub 电子邮件通知不起作用

我正在处理 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)

这是我应该与我的集群系统管理员一起解决的问题,还是我做错了什么?

谢谢你的帮助。

email qsub sungridengine

4
推荐指数
1
解决办法
3085
查看次数

显式地创建一个带有变量名的目标

我有Makefile以下格式:

.PHONY: all

target1 := file1
target2 := $(target1).txt

all: $(target2)

$(target1): prerequisite1
    recipe

$(target2): $(target1)
    recipe 
Run Code Online (Sandbox Code Playgroud)

target2取决于target1make并将正确替换字符串以创建文件名。但是,在我的系统上,输入文件名和路径非常繁琐;我想知道是否有任何方法可以target1在引用其名称而不是文件路径,而是变量.

例如,我希望能够调用:

$ make $(target1) 
Run Code Online (Sandbox Code Playgroud)

而不是

$ make path/to/file1
Run Code Online (Sandbox Code Playgroud)

我想这样做是因为我对变量进行了相当多的更改,并且我的结构Makefile有许多中间体,这些中间体有时很难追溯到它们的文字文件路径,但make根据我分配给它们的变量名很容易找到。

以上不起作用,我已经阅读了该man页面,并在此处和 Google 上进行了大量搜索。只是想知道是否有人以前遇到过这个问题并找到了解决方案。

makefile gnu-make

2
推荐指数
1
解决办法
2104
查看次数