跳过导航

R

箕斗侧边导航

在OSCER系统上使用R包

目录表

R是什么?

R是一种用于统计计算和图形的编程语言,由R统计计算基金会支持。它具有高度可扩展性,并提供各种统计和图形技术。

谁可以在OSCER资源上使用R ?

R对所有OSCER用户都可用。

oser资源上有哪个版本的R ?

点击这里查看oser系统上安装和可用的R版本。

你可按以下步骤获取最新资讯:

  • 登录OSCER系统
  • 类型模块avail R
  • 向下滚动列表,直到看到R的清单(类似于下面高亮显示的图像)

您可以选择最适合您的项目的R版本,但应该尽量使用可用的最新版本以获得最佳效果。目前的版本是R/4.0.3-foss-2020b,但这将会改变。

在OSCER资源中有哪些R包可用?

OSCER维护了几个不需要安装本地包就可以使用的R包。按照以下步骤获取最新的名单:

  • 登录OSCER系统
  • 通过输入(例如):module Load R/4.0.3-foss-2020b来加载你需要的R版本的模块
  • 然后通过输入:R开始一个R会话
  • 要获取R包列表,输入:library()

开始R

  • 登录OSCER系统
  • 通过输入(例如):module Load R/4.0.3-foss-2020b来加载你需要的R版本的模块
  • 然后通过输入:R开始一个R会话

这将以交互模式加载R,并将您置于R控制台中。您可以在这里安装额外的R包,并运行小的R脚本(持续时间不超过3分钟)。

注意:任何计算密集型工作都应作为作业提交。请参考在作业中运行R。

安装额外的R包

本节指导您在没有root访问权限的情况下在oser系统上本地安装R包。

我们强烈建议查看预安装的软件包,看看您想要的软件包是否已经安装在OSCER系统上。要做到这一点,请参考OSCER资源中有哪些R包可用?

下面的步骤将引导您完成在主目录中安装本地R包的过程。请注意,由于我们的自动删除策略,我们不建议在您的临时文件夹中安装R包。

在本例中,我们将从https://cran.r-project.org/web/packages/available_packages_by_name.html安装ACSWR包

  • 登录OSCER系统
  • 通过输入(例如):module Load R/4.0.3-foss-2020b来加载你需要的R版本的模块
  • 通过输入:R开始一个R会话
  • 要安装ACSWR包,输入:install.packages(c("ACSWR"))
  • 安装包到‘ /usr/lib64/R/library ’(因为‘lib ’未指定)install.packages(c("ACSWR"))中的警告:‘lib = "/usr/lib64/R/library"’是不可写的。您想使用个人库吗?(y / n)
  • 输入y,按“Enter”。这告诉R,您将在您可以访问的本地文件夹(您的主目录)中安装包。
  • 接下来,系统会提示以下信息:是否要创建一个个人库~/R/x86_64-redhat-linux-gnu-library/3.3来安装软件包?(y / n)
  • 输入y,按“Enter”。这将在您的主目录中创建文件夹/R/x86_64-redhat-linux-gnu-library/3.3。
  • 接下来,您将获得以下消息要求你选择一个安装来源:——请选择一个凹口镜使用这个会话,HTTPS凹口镜1:0-Cloud (HTTPS) 2:阿尔及利亚(HTTPS) 3:澳大利亚(堪培拉)(HTTPS) 4:澳大利亚(墨尔本1)(HTTPS) 5:澳大利亚(墨尔本2)(HTTPS) 6:澳大利亚(佩斯)(HTTPS) 7:奥地利(HTTPS) 8:比利时(根特)(HTTPS) 9:巴西(PR) (HTTPS) 10:巴西(RJ) (HTTPS) 11:巴西(SP 1) (HTTPS) 12:巴西(SP 2) (HTTPS) 13:保加利亚(HTTPS) 14:加拿大(BC) [https] 15:加拿大(MB) [https] 16:加拿大(NS) [https] 17:智利1 [https] 18:智利2 [https] 19:中国(北京)[https] 20:中国(合肥)[https] 21:中国(广州)[https] 22:中国(兰州)[https] 23:中国(上海1)[https] 24:中国(上海2)[https] 25:哥伦比亚(卡利)[https] 26:捷克共和国[https] 27:丹麦[https] 28:东亚[https] 29:厄瓜多尔(昆卡)[https] 30:厄瓜多尔(基多)[https] 31:爱沙尼亚[https] 32:法国(里昂1)[https] 33:法国(里昂2)[https] 34:法国(马赛)[https] 35:法国(巴黎2)[https] 36:法国(巴黎2)[https] 37:德国(埃尔兰根)[https] 38:德国(Göttingen) [https] 39:德国(m nster) [https] 40:希腊[https] 41:冰岛[https] 42:印度[https] 43:印度尼西亚(雅加达)[https] 44:伊朗[https] 45:爱尔兰[https] 46:意大利(帕多瓦)[https] 47:日本(东京)[https] 48:日本(米泽)[https] 49:韩国(首尔1)[https] 50:韩国(蔚山)[https] 51:马来西亚[https] 52:墨西哥(墨西哥城)[https] 53:新西兰[https] 54:挪威[https] 55:菲律宾[https] 56:塞尔维亚[https] 57:新加坡(新加坡)[https] 58:西班牙(A Coruña) [https] 59:西班牙(马德里)[https] 60:瑞典[https] 61:瑞士[https] 62:台湾(忠利)[https] 63:土耳其(德尼兹利)[https] 64:土耳其(梅尔辛)[https] 65:英国(布里斯托尔)[https] 66:英国(伦敦1)[https] 67:美国(CA 1) [https] 68:美国(IA) [https] 69:美国(KS) [https] 71:美国(MI 1) [https] 72:美国(NY) [https] 73:美国(OH) [https] 74:美国(OR) [https] 75:美国(TN) [https] 76:美国(TX 1) [https] 77:越南[https] 78: (HTTP镜像)
  • 输入“1”,按“Enter”。
  • 此时,系统将尝试下载源包并将其安装到您的主目录中。
  • 完成后,您已经在主目录下的以下位置成功安装了ACSWR包:/R/x86_64-redhat-linux-gnu-library/3.3/ACSWR

在作业中运行R

下面的示例代码展示了如何通过批处理脚本提交R作业。如果您不熟悉OSCER的作业调度器或提交批处理脚本,请首先参考以下教程:

提交R作业的步骤:

步骤1:创建一个名为helloworld的示例R作业脚本。R并插入以下代码行:

打印(“hello world”)

步骤2:创建一个名为r_batch.sh的批处理提交文件,并插入以下代码行:

#!/bin/bash ## SBATCH——partition=normal #SBATCH——ntasks=1 #SBATCH——mem=1024 #SBATCH——output=r_output_%J.txt #SBATCH——error=r_error_%J.txt #SBATCH——time=12:00:00 #SBATCH——job-name=jobname #SBATCH——mail-user=youremailaddress@yourinstitution.edu #SBATCH——mail-type=ALL #SBATCH——chdir=/home/yourusername/directory_to_run_in # #################################################模块加载R/4.0.3-foss-2020b Rscript helloworld。R > output.txt

总之,批处理脚本在12小时内需要1个CPU核心和1024MB内存。如果您的作业希望在多个核心上并行运行,请在‘——ntasks=’中指定。如果它可以在节点中的所有内核上运行(目前在Schooner copmute节点上有20或24个内核),请将“——ntasks=1”替换为“——exclusive”,以请求整个节点,并防止其他作业同时在那里运行。

作业启动后,它运行以下命令:

模块加载R/4.0.3-foss-2020b
Rscript helloworld.r > output.txt

在作业正在运行的任何计算节点上。第一个命令准备运行R。第二个命令实际运行R脚本helloworld。R并将输出放在文件output.txt中。您可以将这些更改为适合您的任何值。注意:任何大的输出都应该放到/scratch空间中,因为您的主目录非常小(目前为20GB)。/scratch永远不会备份,并且会对旧文件(超过2周的文件)进行文件清除/清理。

步骤3:输入sbatch r_batch.sh提交批处理作业

步骤4:在成功完成作业后,您将在目录中发现三个新文件:output.txt、r_output_ .txt和r_error_ .txt。‘%J’将被SLURM jobID替换,从而避免覆盖旧作业中的文件。

步骤5:如果作业成功运行,您应该在output.txt中看到结果。如果您的R作业产生其他输出文件,它们也将在该目录中创建。