写在前面: 在前面两篇文章R语言入门系列之一与R语言入门系列之二中,我分别介绍了R语言中的对象与结构、数据的输入输出及可视化。 基于前面的基础,今天我介绍一下R语言中基础的程序结构,来帮助我们完成更复杂的数据处理任务。此外,如果你有大批量数据处理、可视化任务,需要着重学习R脚本在命令行的调用方式以及命令行参数的使用方法。 写好的R语言程序一般保存为R脚本,这样在以后完成相似数据处理任务时可以方便地直接调用。 我们可以直接在R中运行上面程序然后使用这个函数,也可以保存为R脚本然后使用source()函数调用。 ,可以使用commandArgs()设置命令行参数来增强脚本的适用性,我们可以通过下面脚本来查看R语言命令行参数设置规则: Args <- commandArgs() cat("Args[1]=", Args
直接通过Rsript xx.R arg1 arg2 arg3 arg4 arg5运行脚本。这种方法只能设置位置参数,各参数位置固定,不能写乱,所以如果参数简单且数量少,可以用此种方法。 如果不设置参数控制,直接在脚本第一行写一句Args <- commandArgs(T)即可,然后直接Rscript xx.R a1 a2运行脚本,参数a1,a2的值会存储在Args中,脚本中使用Args # 示例脚本(当阐述格式为5个或者2个时成功运行脚本,否则报错并提示错误信息)# 当想要设置五个参数时使用下列代码:Args <- commandArgs(T)# ------------------- 并提示以下帮助信息 stop({ cat("Error: Argu error\n Please use args correctly\nHelp:\n Rscrpit this.R \nPlease use Rscript xx.R -h to get help info\n") }) }终端运行 Rscript xx.R -n yyds -t 8 -m 1 -p 0.05
因日常需要,需要定期关注国家局某些网站的政策动向,不想有事没事就跑网站去看,索性就用R语言脚本写了一段代码获取是否有新的政策文件。本期内容重点在与介绍如何定时执行R语言脚本,而非如何获取网站最新动态。 假若现在你已经有了一份写好的R脚本,假如:“Notification.R”是你已经写好的R语言脚本想要实现这个定时获取信息,Windows环境下可以利用系统自带的“任务计划程序(taskschd)”。 现实思路就是利用cmd执行Rscript.exe,所以我这里的设置如下:程序或脚本处设置为:cmd添加参数设置为:/c c:/PROGRA~1/R/R-42~1.1/bin/Rscript.exe " D:/Project/Notification.R" >> "D:/Project/Notification..log" 2>&1“D:/Project/Notification.R”对应脚本的存放位置 ,这里在执行“Notification.R”脚本的同时,还写入一份log日志。
方差分析在各种实验和准实验设计的分析中都有广泛应用,接下来将要介绍用于常见研究设计分析的 R函数。 此外,以表达式y~A+B+A:B为例,R会默认这样理解它(序贯型):(1)A对y的影响;(2)控制A时,B对y的影响;(3)控制A和B的主效应时,A与B的交互效应。 其中R默认调用序贯型,而有些统计软件(如SPSS)默认调用边界型。也不用担心必须应用其它两种理解方式的情形,R中提供了很多函数包来应对(如包car中的函数Anova())。) ?
我们想要的结果大致如下: (1)寻找miRNA-mRNA调节关系对 (2)寻找miRNA-lncRNA调节关系对 (3)合并miRNA-mRNA、miRNA-lncRNA调节关系对,构建ceRNA网络 R语言运行的调控关系对如下所示
function() { cmdArgs <- commandArgs(trailingOnly = FALSE) if (length(grep("^-f$", cmdArgs)) > 0) { # R cmdArgs[grep("^-f", cmdArgs) + 1]))[1] } else if (length(grep("^--file=", cmdArgs)) > 0) { # Rscript/R getSourceEditorContext()$path) } else if (is.null(attr(stub, "srcref")) == FALSE) { # 'source'd via R getProgramName() Path <- thisPath() cat(Path,"\t",program,"\n",file=stderr()) 将以上代码保存到 getPathProgram.R, 然后运行 Rscript getPathProgram.R 显示结果如下: /bi/8.xuxiong/work getPath.R
在上一篇文章里,给大家介绍了R语言的下载,界面操作,6个处理对象等等。 ,在这些情况下,可以使用R脚本来处理,即R代码行的集合。 文件→新建程序脚本 ④获取帮助、包、内置数据 这三个东西都属于R软件内置的文件,而帮助和包的相关内容在引言的文章中有提到过。内置数据在上一部分我们已经提过。 包可以包含用R语言写的函数,汇编代码动态加载库以及数据集。包的功能会自动执行,所以用户不需要一直加载包。 这一部分暂时先告一段落,在这部分里,大家了解了R语言环境中的变量、脚本的使用和一些便利性简单操作,以及图形基础,下个部分我们会接触到R语言的流程控制、编码和数据读入、转换和保存等操作,敬请期待。
/scRNA_scripts/harmony.R') # 默认 ScaleData 没有添加"nCount_RNA", "nFeature_RNA" # 默认的 sce.all.int = 将运行步骤分成多个脚本,避免脚本过于冗长 在单细胞多样品分析实战中,我们会使用到一个scRNA_scripts文件夹,来管理用到脚本 通过不同的脚本,将分析流程中用到的代码分开进行管理: lib.R:整理汇总了需要加载的 R包 qc.R;质控用到的脚本——计算并可视化线粒体、核糖体等基因百分比,可视化之后设置合理的阈值进行过滤 harmony.R:降维聚类分群系列代码脚本,会将降维聚类结果保存为rds文件存储起来 check-all-markers.R /scRNA_scripts/qc.R')加载脚本中的函数,然后使用即可。这样可以大大缩短脚本的长度,也可有效避免运行时候由于代码太长看不仔细而出错! 代码整理为R脚本或者Rmd格式文件 结合将长脚本分开为多个脚本的方式,可以在step1里面调用整理好的脚本进行分析 写在结尾 要养成整理代码和工作目录的好习惯,最好命名的时候按照一定的规律命名,方便后续查找使用
默认的参数commandArgs超简单 1.1 脚本示例 head.R 1args = commandArgs(TRUE) 2 3if(length(args) ! = 2){ 4 cat("运行命令方式:Rscript head.R dat.csv 5\n\thead.R 为脚本\n\tdat.csv 为数据\n\t5 为行数\n") 5 quit 2运行命令方式:Rscript head.R dat.csv 5 3 head.R 为脚本 4 dat.csv 为数据 5 5 为行数 执行:参数正确,直接执行 1(base) [ = parse_args(opt_parser); 12file = opt$dat 13r = opt$row 14 15dd = read.csv(file) 16head(dd,r) 2.2 脚本解释 dat=DAT 7 请输入数据文件 8 9 -r ROW, --row=ROW 10 请输入行数 11 12 -h, --help 13 Show
安装完成之后,你将会看到一个朴实无华的图标,没错,这就是 R 语言本尊了。 ? R 语言简单实例 主要工作已经完成,让我们动动小手,优雅的单击(或双击)R Studio 图标,来感受一下R 语言的魅力。 小结 到此为止,R 语言就已经顺利的收入囊中了,恭喜你,又掌握了一门语言(的 Hello world)了。 【此处应有掌声】 接下来,会继续介绍 R 语言的基本用法和其中比较重要的函数使用方法,目标是能使用 R 语言对数据进行初步分析,以便能在生活和工作之中有所应用。 加之在大学时就对数据分析感兴趣,也曾经学过 R 语言,现在算是重温和复习吧。
一个小技巧分享,假如有人写了很多绘图脚本,比如文献:《Preoperative immune landscape predisposes adverse outcomes in hepatocellular /',pattern = '*.R$') fs lapply(fs, function(x){ print(x) source(x) }) 这个技巧有一个小问题,就是有一些脚本可能是缺包或者里面有小 其实理论上应该是在运行每个脚本的时候加上try catch,不过咱们的目标是批量运行每个代码并且保证成功,所以跳过那些运行失败的解决不了问题,反而应该是勇往直前解决问题。 需要基本生信背景知识 当然需要读者具备计算机基础知识,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理: 《生信分析人员如何系统入门R(2019更新版)》 《生信分析人员如何系统入门 Linux(2019更新版)》 其中,R语言可能更重要一点,我把R的知识点路线图搞定,如下: 了解常量和变量概念 加减乘除等运算(计算器) 多种数据类型(数值,字符,逻辑,因子) 多种数据结构(向量,矩阵
过去一个月实验比较忙,很久没有写点东西了,今天要给amina画图,因此学习了一下R语言的基础画图。
今天继续学习R语言基础的R包使用,以R包:dplyr为例 数据准备 01 R包的安装 install.packages(“dplyr”) 或BiocManager::install(“dplyr”) #务必要打引号 02 R包的调用/加载 library(dplyr) 或require(dplyr) #这里不用引号 部分人可能会因为镜像的问题失败,解决方法https://mp.weixin.qq.com /s/XvKb5FjAGM6gYsxTw3tcWw 03 R包及数据准备 install.packages("dplyr") library(dplyr) test <- iris[c(1:2,51:52,101 经过这几期的R语言基础,你应该能够入门R了,渐渐的也要自己去学会看帮助文档,去搜报错,还记得怎么搜命令和R包的帮助文档吗? ? +命令 #搜命令帮助文档 help(package='R包') #搜R包帮助文档 如果你能独立处理这些问题,那么恭喜你,你的R应该没问题啦! 应该没问题了!!!!吧?
学习生信时,最常用的可视化软件就是R,可大家在使用的时候又好像用的是Rstudio,究竟什么是R和Rstudio? R是一种编程语言,也是统计计算和绘图的环境,它汇集了许多函数,能够提供强大的功能。 RStudio提供了一个具有很多功能的环境,使R更容易使用,是在终端中使用R的绝佳选择。 01 安装R 进入R的官网https://www.r-project.org/ 第一步 点击红框中的download R 第二步 在镜像这里中选择第一个 第三步 接下来按照红框点点点就能完成R的安装 第四步 第五步 R语言软件界面简陋,通常不直接使用,而是用图形界面的Rstudio。 1.显示文件列表 dir() #查看工作路径下文件,类似于Linux系统下的ls list.files() #同上 示例 2.加减乘除 和其他编程语言相同,直接输入即可 示例 3.赋值 赋值符号
一、R语言安装 首先进入官网:https://cran.r-project.org 下载相应版本的安装包 点击base 点击Download R4.1.2 for Windows,即可开始下载
参考 Anaconda 官方文档《Using R language with Anaconda》安装 R-4.0.2: conda create -n r-4.0.2 r-essentials r-base ==4.0.2 1. unable to open connection to X11 display > plot(1:10) Error in .External2(C_X11, d$display 命令行下 R 画图无法弹出图形界面结果 正常情况下,capabilities()如果现实 X11 为 TRUE,执行plot(1:10)时会在 windows 下弹出一个绘图的结果图形界面。 首先,使用 root 安装下面一些 X11 依赖: yum install xorg-x11-* libX11-* libXt-* 其次,在你的 XShell 中配置 X11 转发功能。 最后,用你的 XShell 重新登录服务器,打开 R 执行plot(1:10)即可出现你想要的绘图结果界面。 猜您喜欢
参考 Anaconda 官方文档《Using R language with Anaconda》安装 R-4.0.2: conda create -n r-4.0.2 r-essentials r-base ==4.0.2 1. unable to open connection to X11 display > plot(1:10) Error in .External2(C_X11, d$display 命令行下 R 画图无法弹出图形界面结果 正常情况下,capabilities()如果现实 X11 为 TRUE,执行plot(1:10)时会在 windows 下弹出一个绘图的结果图形界面。 ? 首先,使用 root 安装下面一些 X11 依赖: yum install xorg-x11-* libX11-* libXt-* 其次,在你的 XShell 中配置 X11 转发功能。 最后,用你的 XShell 重新登录服务器,打开 R 执行plot(1:10)即可出现你想要的绘图结果界面。
___________________________________________________________________________________ 二、R语言中的线性混合模型 来自博客 R中的线性混合模型介绍(翻译博客)(来自科学网邓飞博客)原来来自:http://www.r-bloggers.com/linear-mixed-models-in-r/ 1、nlme lme4 Asreml 几个包的介绍: 包 优点 缺点 nlme 这是一个比较成熟的R包,是R语言安装时默认的包,它除了可以分析分层的线性混合模型,也可以处理非线性模型。 2、R语言案例 数据来源:一个传统的裂区数据来说明不同软件包的用法,这个数据oats是在MASS包中,是研究大麦品种和N肥处理的裂区试验,其中品种为主区,肥料为裂区。 在R语言中我们使用mgcv包中的lmer函数来完成这项工作。首先载入faraway包以便读取psid数据集,然后加载mgcv包,再将年份数据中心化以方便解释模型,最后用lmer函数进行建模。
今天,我们利用健明老师推荐的批量运行多个R脚本代码,见证一下该代码的优势。 patients with liver transplantation》的 GitHub (https://github.com/sangho1130/KOR_HCC) ,我们发现其共包含19个R脚本 然后,我们一个一个打开脚本检查了一下其所用到的R包,下载好所要用到的所有R包。但是在下载R包过程中我们发现RGtk2和rsgcc这两个包一直报错,没有解决掉这个问题。 所以,我们把包含这两个包的5个脚本剔除,把剩下的14个R脚本进行批量运行。 #这两个R包下载失败了,如果你们下载成功了,也欢迎分享以下方法! 10 11 Outcome II 2 11 Null hypothesis: Treatments have no effect on the
,draw.segments = T,key.loc =c(5,0.5) , mar =c(2,0,0,0) ) #full=F,代表半圆 #segments代表一段一段画 #注释图标位置 #图边距 11