下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容。栏目后续章节的文章将深入概括R语言在临床研究和新药创新领域的应用,填补了国内R教材中尚未广泛覆盖的部分内容。
欢迎订阅我们专栏
.......前面部分请点击上面链接看原文(原文8827字)
一、Source区(左上角1区,文本编辑框)
二、Console, Terminal, Jobs区(右上角2区,控制台)
上图,在RStudio中,Console、Terminal、和Background Jobs(后台作业)是三个不同的组件,各自有其独特的功能和用途。
2.1 Console
RStudio的Console(控制台)是一个非常重要的组件,主要用于交互式执行代码、显示输出结果、查看警告和错误信息、管理历史记录、提供代码补全和帮助文档查询、加载和管理R包、管理工作环境,以及与其他RStudio面板(如Source编辑器和Environment面板)交互,为R用户提供了一个直接与R解释器交互的接口。
Console中R的常见错误信息示例
# 错误信息示例
# 1. Error: object 'x' not found
# 试图使用一个尚未定义或不存在的对象
tryCatch({
print(x) # x未定义
}, error = function(e) { print(e$message) })
# 2. Error in FUN(...) : arguments imply differing number of rows
# 函数参数之间的数据行数不匹配
tryCatch({
df1 <- data.frame(a = 1:3)
df2 <- data.frame(b = 1:4)
cbind(df1, df2) # 行数不一致
}, error = function(e) { print(e$message) })
# 3. Error in if (condition) { : argument is not interpretable as logical
# if语句的条件不是布尔类型
tryCatch({
if (5) { print("Hello") } # 5不是布尔类型
}, error = function(e) { print(e$message) })
# 4. Error: cannot allocate vector of size xx
# 内存不足,无法分配所需大小的向量
tryCatch({
x <- matrix(1, nrow = 1e9, ncol = 1e9)
}, error = function(e) { print(e$message) })
# 5. Error in match.arg(type) : 'arg' must be NULL or a character vector
# 函数参数不符合预期类型
tryCatch({
mean(c(1, 2, 3), trim = "high") # 参数类型错误
}, error = function(e) { print(e$message) })
Console中R的常见警示信息示例
# 警告信息示例
# 1. Warning: Incomplete final line found by readTableHeader
# 读取的文件最后一行不完整
# 假设example.txt文件存在且最后一行不完整
tryCatch({
data <- read.table("example.txt") # 文件最后一行不完整
}, warning = function(w) { print(w$message) })
# 2. Warning: number of items to replace is not a multiple of replacement length
# 替换操作中,被替换的元素数量与替换的元素数量不匹配
x <- 1:10
tryCatch({
x[1:3] <- c(1, 2) # 数量不匹配
}, warning = function(w) { print(w$message) })
# 3. Warning: the condition has length > 1 and only the first element will be used
# 条件表达式返回多个值,if语句只使用第一个值
tryCatch({
if (c(TRUE, FALSE)) { print("Hello") } # 条件长度大于1
}, warning = function(w) { print(w$message) })
# 4. Warning: Coercing LHS to a list
# 在赋值操作中,将左侧的对象强制转换为列表
df <- data.frame(a = 1:3)
tryCatch({
df[1] <- list(4:6) # 强制转换
}, warning = function(w) { print(w$message) })
# 5. Warning: NAs introduced by coercion
# 在强制转换过程中引入了NA值,通常是因为某些值无法转换为目标类型
x <- c("1", "2", "three")
tryCatch({
as.numeric(x) # "three"无法转换为数字
}, warning = function(w) { print(w$message) })
2.2 Terminal
RStudio的Terminal(终端)是一个集成在RStudio IDE中的功能,提供了对系统shell的直接访问。它允许大家直接在RStudio界面内执行系统命令,无需切换到外部终端程序,并支持运行vim、Emacs和tmux等全屏终端应用程序。
Terminal可以进行常规的命令行操作,包括行编辑和shell历史记录,并且支持创建和管理多个终端会话,方便同时处理多个任务。大家可以为不同的终端会话设置有意义的名称,便于管理和切换。Terminal与RStudio的其他功能无缝集成,如项目管理和版本控制等,且在Windows、Mac和Linux上都可使用,但可能有些细微的平台差异。
Terminal还提供了多种快捷键来创建、切换和管理终端会话,适合运行那些可能会阻塞R会话的长时间运行任务,并可用于远程登录到其他系统。对于RStudio Server或RStudio Workbench,Terminal还可用于系统管理任务。总的来说,RStudio的Terminal为大家提供了一个强大的工具,使他们能够直接在RStudio环境中执行系统级操作,提高了工作效率,并为更复杂的任务提供了更大的灵活性。
2.3 Background Jobs
RStudio的Background Jobs(后台作业)功能允许大家将长时间运行的R脚本发送到本地或远程的后台作业中运行。这一功能极大地提高了数据科学家和分析师的生产力,因为他们可以在作业运行的同时继续在RStudio中进行其他工作。
并行处理:大家可以同时运行多个后台作业,而不必等待一个作业完成后再开始另一个。这对于需要长时间运行的任务(如机器学习模型训练、大数据处理等)特别有用。
保持R会话可用:运行后台作业不会阻塞当前的R会话。大家可以继续在RStudio中进行其他操作,如编写和测试代码、查看数据等。
分离环境:后台作业可以在一个独立的R进程中运行,这意味着它们不会干扰当前R会话中的变量和对象。这对于确保代码的独立性和避免冲突非常重要。
结果管理:大家可以选择将后台作业的结果返回到全局环境、作为单独的结果对象,或者不返回结果。这提供了灵活的结果管理方式。
程序化控制:通过rstudioapi
包,大家可以程序化地创建和管理后台作业。这包括添加作业、设置作业进度和状态等。
远程作业:RStudio Workbench支持在本地服务器或多服务器集群环境中运行作业。这允许大家利用更多的计算资源来处理复杂任务。
三、Environment, History, Connections,Tutorial区(左下角3区,环境变量框)
~~~~~~~~~~
在这里,你学到的并非仅仅是 R 的某一个技巧,而是能够从零开始,深入且系统地学习 R 语言。此外,本专栏每周至少定期更新三篇文章,每篇文章篇幅均在 5000 字以上,质量平均分更是高达 93 分。而且,对于已经发表的知识点,我们也会根据新的技术或理解及时进行更新,这是纸质版图书无法做到的。为了让更多的忠实粉丝和同学们享受到实惠,本专栏采用折扣定价策略。随着章节的不断完成,折扣力度会逐渐减小。所以,现在正是订阅的最佳时机!
https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482
第一章:认识数据科学和R
1章1节:数据科学的发展历程,何 R 备受青睐及我们专栏的独特之处(更新20240822)-CSDN博客
1章2节:关于人工智能、机器学习、统计学连和机器学习、R 与 ChatGPT 的探究 (更新20240814)-CSDN博客
1章3节:R 语言的产生与发展轨迹(更新2024/08/14)-CSDN博客
1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新20240814)-CSDN博客
第二章:R的安装和数据读取
2章1节:R和RStudio的下载和安装(Windows 和 Mac)_rst语言选择哪个镜像-CSDN博客
2章2节:RStudio 四大区应用全解,兼谈 R 的代码规范与相关文件展示_rstudio的console和terminal-CSDN博客
2章3节:RStudio的高效使用技巧,自定义RStudio环境(更新20240823)_rstudio如何使用-CSDN博客
2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客
2章5节:认识和安装R的扩展包,什么是模糊搜索安装,工作目录和空间的区别与设置(更新20240807 )-CSDN博客
2章6节:R的数据集读取和利用,如何高效地直接复制黏贴数据到R(更新20240807 )_r语言 复制数据集-CSDN博客
2章7节:读写RDS,CSV,TXT,Excel,SPSS、SAS、Stata、Minitab等的数据文件(更新20240807)_r语言读取rds文件-CSDN博客
2章8节:一文学会 R Markdown 的文档核心操作,切记文末有R资源的分享_r markdown文件(.rmd)-CSDN博客
2章9节:认识R与数据库连接和网络爬虫,学会在R中使用SQL语言_sql和r语言-CSDN博客
2章10节:用 R 直接下载并分析 NHANES 数据库的数据,文末示例自创便捷下载函数(更新20240807)_nhanes数据分析-CSDN博客
第三章:认识数据
3章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客
3章2节:继续讲R的数据结构,数组、数据框和列表-CSDN博客
3章3节:R的赋值操作与算术运算_r里面的赋值-CSDN博客
第四章:数据的预处理
4章1节:全面了解 R 中的数据预处理,通过 R 基本函数实施数据查阅_r数据预处理-CSDN博客
4章2节:从排序到分组和筛选,通过 R 的 dplyr 扩展包来操作-CSDN博客
4章3节:处理医学类原始数据的重要技巧,R语言中的宽长数据转换,tidyr包的使用指南-CSDN博客
4章4节:临床数据科学中如何用R来进行缺失值的处理_临床生存分析缺失值r语言-CSDN博客
4章5节:数据科学中的缺失值的处理,删除和填补的选择,K最近邻填补法-CSDN博客
4章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客
4章7节:用R做数据重塑,数据去重和数据的匹配-CSDN博客
4章8节:用R做数据重塑,行列命名和数据类型转换-CSDN博客
4章9节:用R做数据重塑,增加变量和赋值修改,和mutate()函数的复杂用法_r语言如何在数据集中添加变量-CSDN博客
4章10节:用R做数据重塑,变体函数应用详解和可视化的数据预处理介绍-CSDN博客
4章11节:用R做数据重塑,数据的特征缩放和特征可视化-CSDN博客
4章12节:R语言中字符串的处理,正则表达式的基础要点和特殊字符-CSDN博客
4章13节:R语言中Stringr扩展包进行字符串的查阅、大小转换和排序-CSDN博客
4章14节:R语言中字符串的处理,提取替换,分割连接和填充插值_r语言替换字符串-CSDN博客
4章15节:字符串处理,提取匹配的相关操作扩展,和Stringr包不同函数的重点介绍和举例-CSDN博客
4章16节:R 语言中日期时间数据的关键处理要点_r语言 时刻数据-CSDN博客
第五章:定量数据的统计描述
5章1节:用R语言进行定量数据的统计描述,文末有众数的自定义函数-CSDN博客
5章2节:离散趋势的描述,文末1个简单函数同时搞定20个结果-CSDN博客
5章3节:在R语言中,从实际应用的角度认识假设检验-CSDN博客
5章4节:从R语言的角度认识正态分布与正态性检验-CSDN博客
5章5节:认识方差和方差齐性检验(三种方法全覆盖)-CSDN博客
5章9节:组间差异的非参数检验,Wilcoxon秩和检验和Kruskal-Wallis检验-CSDN博客
第六章:定性数据的统计描述
6章1节:定性数据的统计描述之列联表,文末有优势比计算介绍-CSDN博客
6章2节:认识birthwt数据集,EpiDisplay和Gmodels扩展包的应用-CSDN博客
6章3节:独立性检验,卡方检验,费希尔精确概率检验和Cochran-Mantel-Haenszel检验-CSDN博客
6章4节:相关关系和连续型变量的Pearson相关分析-CSDN博客
6章5节:分类型变量的Spearman相关分析,偏相关分析和相关图分析-CSDN博客
6章6节:相关图的GGally扩展包,和制表的Tableone扩展包-CSDN博客
第七章:R的传统绘图
7章1节:认识R的传统绘图系统,深度解析plot()函数和par()函数的使用-CSDN博客
7章2节:R基础绘图之散点图、直方图和概率密度图-CSDN博客
7章5节:散点矩阵图,与小提琴图、Cleveland 点图、马赛克图和等高图-CSDN博客
7章6节:用R进行图形的保存与导出,详细的高级图形输出,一文囊括大多数保存的各种问题,和如何批量保存不同情况的图形-CSDN博客
第八章:R的进阶绘图
8章1节:认识 ggplot2 扩展包,深度解析 qplot() 函数的使用-CSDN博客
8章2节:深度讲解 ggplot2 的绘图步骤,理解其核心逻辑, 和 ggplot()函数-CSDN博客
8章3节:用R来绘制医学地理图,文末有具体完整代码-CSDN博客
8章4节:维恩图的认识与应用,和使用UpSet图-CSDN博客
8章5节:用R绘制平行坐标图-CSDN博客
8章8节:绘制自定义的高质量动态图和交互式动态图-CSDN博客
第九章:临床试验的统计