RDS或RData格式文件的读写
市面上的 R 语言培训班和书籍(包括网络上的文章或视频),由于受限于培训时间或书籍篇幅,往往难以深入探讨 R 语言在数据科学或人工智能中的具体应用场景,内容泛泛而谈,最终无法真正解决实际工作中的问题。这两种格式不仅能够保证数据的紧凑性和读取速度,还能够完整地保留R特有的数据结构和属性信息,从而提高数据处理的效率和准确性。RDS格式的一个重要优势是可以在读取时将对象重新赋予不同的名称,这使得在同一R
下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文6012字)。
2章7节:用R读写RDS、RData、CSV和TXT格式文件(更新20250129)_r语言读取rds文件-CSDN博客
一、RDS或RData格式文件
在R语言中,数据存储和读取是数据分析工作的重要环节。R提供了两种原生格式用于存储数据:RDS和RData格式。这两种格式在R语言环境中非常有用,因为它们能够高效地存储和读取数据,同时保持数据的完整性和特定结构。如果不考虑数据的可移植性,并且数据处理过程中只使用R,推荐直接使用这两种格式进行数据的读写操作。
RDS格式用于存储单个R对象,如数据框、列表或模型等。由于其采用二进制格式进行存储,RDS文件的大小通常较小,并且在读取时可以保留对象的完整结构和属性信息。
RDS格式的一个重要优势是可以在读取时将对象重新赋予不同的名称,这使得在同一R会话中处理多个版本的数据或模型变得更加灵活。尽管RDS文件在保存和读取过程中可能稍微慢一些,但其高效的存储方式和灵活的命名能力使其在数据科学中非常受欢迎。
下面是比较XLS(EXCEL)、CSV、RDS和RData格式的表格:
XLS | CSV | RDS | RData | |
---|---|---|---|---|
存储对象数量 | 多个工作表中的多个对象 | 单个数据集 | 单个对象 | 多个对象 |
是否保留原始结构和属性 | 是 | 否 | 是 | 是 |
文件大小 | 大 | 较大 | 小 | 较大 |
读取速度 | 较慢 | 较慢 | 快 | 快 |
灵活性 | 中 | 高 | 高 | 中 |
覆盖已有变量风险 | 否 | 否 | 否 | 是 |
压缩 | 否 | 否 | 是 | 否 |
常见使用软件 | Excel, R, Python | Excel, R, Python | R | R |
当数据处理过程完全依赖于R语言,并且不需要将数据传递到其他平台时,直接使用RDS或RData格式来读写数据是一个高效且可靠的选择。这两种格式不仅能够保证数据的紧凑性和读取速度,还能够完整地保留R特有的数据结构和属性信息,从而提高数据处理的效率和准确性。
R语言通过内置的文件操作函数提供了对数据的持久化存储支持。常用的读写操作有:
save()
和load()
:用于保存和加载R对象。write.csv()
和read.csv()
:用于读写CSV格式的数据。write.table()
和read.table()
:适用于表格数据的读写。其中,
save()
函数是用于将R对象保存为二进制格式文件的主要工具,支持将多个对象同时保存到文件中。而load()
函数则用于读取之前通过save()
保存的文件,并将其中的R对象恢复到内存中。
save(..., list = character(), # ...: 指定要保存的对象,可以是多个对象的名称(符号或字符字符串)。
file = stop("'file' must be specified"), # file: 保存文件的名称或者路径,必须指定。若未指定,函数会停止并报错。
ascii = FALSE, # ascii: 如果为TRUE,保存数据时使用ASCII格式;默认为FALSE,使用二进制格式保存。
version = NULL, # version: 指定保存文件的版本格式。NULL为当前版本,支持1、2、3版本。
envir = parent.frame(), # envir: 指定搜索对象的环境。默认为父环境,即当前环境。
compress = isTRUE(!ascii), # compress: 是否对保存的文件进行压缩,若为TRUE则压缩;如果ascii为TRUE,则默认为FALSE。
compression_level, # compression_level: 压缩级别,整数值,表示压缩的强度。通常范围为1到9,默认为6。
eval.promises = TRUE, # eval.promises: 是否强制评估Promise对象,默认为TRUE,表示评估Promise对象。
precheck = TRUE) # precheck: 是否检查要保存的对象是否存在,默认为TRUE。在保存之前进行检查。
首先生成数据集 data_list
,它是一个包含多种数据类型的列表,具有三个主要部分:一个数据框 df
,其中包含两列数据,一列是从1到5的整数,另一列是字母 a
到 e
;一个数值向量 vec
,包含五个数值;以及一个3x3的矩阵 matrix
,其元素从1到9。这个数据集展示了R中不同数据结构的使用,包括数据框、向量和矩阵,适合用来进行各种数据处理和分析操作,如下面代码。
# 生成一组示例数据
data_list <- list(
df = data.frame(a = 1:5, b = letters[1:5]), # 创建一个数据框,包含两列
vec = c(10, 20, 30, 40, 50), # 创建一个数值向量
matrix = matrix(1:9, nrow = 3) # 创建一个3x3的矩阵
)
# 将数据保存为RData格式
save(data_list, file = "data_list.RData")
如果要保存为RDS格式,我们需要saveRDS函数。
saveRDS(object, file = "", ascii = FALSE, version = NULL,
compress = TRUE, refhook = NULL) # 保存R对象为RDS格式的文件
代码如下。
# 将数据保存为RDS格式
saveRDS(data_list, file = "data_list.rds")
上面涉及几个函数,这个说明一下。
1)
data.frame()
函数用于创建一个数据框,它是用于存储表格数据的基本数据结构。在代码中,我们用它创建了一个包含两列的数据框,其中一列包含整数,另一列包含字母。这个数据框被存储在一个列表data_list
中。2)
save()
函数用于将一个或多个R对象保存到RData格式的文件中。RData格式能够保存多个对象并保留其原始结构和属性。在代码中,我们使用save()
函数将data_list
列表保存为一个名为data_list.RData
的文件,这样可以在以后恢复这个数据列表。3)
saveRDS()
函数用于将单个R对象保存为RDS格式的文件。RDS格式专为存储单个对象设计,并允许在读取时将对象赋予新的名称。在代码中,我们使用saveRDS()
函数将data_list
保存为名为data_list.rds
的文件,这种格式适合于在需要时重新加载数据并为其指定不同的变量名。
然后读取数据
# 从RDS文件读取数据
data_list_rds <- readRDS("data_list.rds")
print("数据从RDS文件读取:")
print(data_list_rds)
在这段代码中,
readRDS()
函数用于从名为data_list.rds
的RDS文件中读取数据,并将其赋值给变量data_list_rds
。这个函数专门用于读取RDS格式的文件,能够恢复保存的单个R对象。随后,print()
函数被用来显示从RDS文件中读取的数据,以便用户检查和验证数据的内容。通过这些函数,用户可以方便地加载和查看之前保存的数据。
~~~~~~
市面上的 R 语言培训班和书籍(包括网络上的文章或视频),由于受限于培训时间或书籍篇幅,往往难以深入探讨 R 语言在数据科学或人工智能中的具体应用场景,内容泛泛而谈,最终无法真正解决实际工作中的问题。同时,它们也缺乏针对医药领域的深度结合与讨论。为了解决这些痛点,我们推出了《用 R 探索医药数据科学》专栏。该专栏将持续更新,不仅为您提供系统化的学习内容,更致力于成为您掌握最新、最全医药数据科学技术的得力助手。
- 每篇文章篇幅在5000字 至9000字之间。
- 内容涵盖试验统计、预测模型、科研绘图、数据库、机器学习等热点领域。
《用 R 探索医药数据科学》专栏目录
专栏问答
专栏问答:管理和选择不同的R,如何做好R的笔记,使用 openxlsx 包(更新20240822)_rstudio不同的r-CSDN博客
专栏问答:R 语言扩展包安装出问题?解决方案详细来教你(更新20250128)-CSDN博客
第一章:认识数据科学和R
1章1节:医药数据科学的历程和发展,用R语言探索数据科学(更新20241029)-CSDN博客
1章2节:机器学习、统计学与ChatGPT的概述,与R语言的相关 (更新20241229)_ai、chatgpt和机器学习什么关系-CSDN博客
1章3节:R 语言的产生与发展轨迹(更新2024/08/14)-CSDN博客
1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新20240814)-CSDN博客
第二章:R的安装和数据读取
2章1节:R和RStudio的下载和安装(Windows 和 Mac)-CSDN博客
2章2节:RStudio 四大区应用全解,兼谈 R 的代码规范与相关文件展示_rstudio的console和terminal-CSDN博客
2章3节:RStudio的高效使用技巧,自定义RStudio环境(更新20241023)_rstudio如何使用-CSDN博客
2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客
2章5节:详解R的扩展包管理(从模糊安装到自动更新)及工作目录和工作空间的设置(更新20241030 )-CSDN博客
2章6节:R的数据集读取和利用,如何高效地直接复制黏贴数据到R(20240807 )_r语言 复制数据集-CSDN博客
2章7节:用R读写RDS、RData、CSV和TXT格式文件(更新20250129)
2章8节:用R读写Excel、SPSS、SAS、Stata和Minitab等产生的数据文件(更新20250129)
2章9节:在R中应用SQL语言(更新20241217)_r语言与数据库-CSDN博客
2章10节:R的网络爬虫技术快速入门(更新20241217)_如何用r分析inhanes数据库-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节:R基础绘图之Cleveland 点图,马赛克图和等高图(更新20250102)_散点矩阵图-CSDN博客
7章6节:用R进行图形的保存与导出,详细的高级图形输出,一文囊括大多数保存的各种问题,和如何批量保存不同情况的图形-CSDN博客
第八章:R的进阶绘图
8章1节:认识 ggplot2 扩展包,深度解析 qplot() 函数的使用-CSDN博客
8章2节:ggplot2绘图之原理逻辑分解,掌握绘图步骤(更新20241104)-CSDN博客
8章3节:ggplot2绘图之内置主题设置全解析(更新20241104)-CSDN博客
8章4节:ggplot2绘图之几何体解析(一),参考线和基准线与分布图和频数图(更新20241104)-CSDN博客
8章5节:ggplot2绘图之几何体解析(二),关系图和时间序列图与误差条和高级图形平滑曲线(更新20241104)-CSDN博客
8章6节:ggplot2绘图之统计变换与位置调整(更新20250111)-CSDN博客
8章7节:个性化配色的自定义颜色演示_r语言自定义颜色怎么使用-CSDN博客
8章8节:让 ggplot2 绘图进行顶级科研杂志的配色(更新20241118)_ggsci使用-CSDN博客
8章9节:坐标轴须图和带状图(更新20241107)-CSDN博客
8章10节:多样的小提琴图(更新20241231)_r语言parallelplot绘制平行坐标图-CSDN博客
8章13节:网络图(知识图谱)绘制的深度解析(更新20241109)_认知网络分析图怎么看-CSDN博客
8章14节:高质量动态图和交互式动态图_r语言数据分析动图-CSDN博客
8章15节:深度讲解词云图的绘制和改变相关的主题(更新20250106)_d3 词云图-CSDN博客
8章16节:R的地理图绘制(更新20241104)-CSDN博客
8章17节:轻便科研绘图的tidyplots扩展包_科研绘图包-CSDN博客
第九章:临床试验的统计
9章4节:两组例数相同的均数比较的样本量估计和绘制功效曲线-CSDN博客
9章5节:两组的例数不等的均数比较的样本量估计和可视化-CSDN博客
9章6节:自身配对设计的均数比较临床试验的样本量估计和可视化-CSDN博客
9章8节: 两、三组试验组率比较的样本量估算和可视化-CSDN博客
9章9节:试验的随机分组认识,用R做简单随机化-CSDN博客
9章11节:用R实现区组随机化和置换区组随机化-CSDN博客
9章12节:动态随机化方法介绍,和用R绘制随机化卡片-CSDN博客
第十章:Meta分析攻略
10章1节:认识循证医学中的Meta分析,并予代码演示分析绘图-CSDN博客
10章2节:Meta分析的7大步骤的扼要解读-CSDN博客
10章3节:二分类变量的Meta分析模型,分析公式构建和结果解读-CSDN博客
10章4节:二分类变量的Meta分析模型,绘制漏斗图和应用剪补法,最后绘制和解读轮廓增强漏斗图-CSDN博客
10章5节:二分类变量的Meta分析模型,敏感性分析和亚组分析,绘制森林图-CSDN博客
10章6节:连续型变量的Meta分析和可视化分析全解-CSDN博客
第十一章:主成分分析
11章2节:深度讲解用R进行主成分分析(中)-CSDN博客
11章3节:深度讲解用R进行主成分分析(下)-CSDN博客
第十二章:常见类型回归分析
12章4节:深度解读构建回归模型表达式的九个关键符号-CSDN博客
12章7节:构建因变量为分类变量的二分类Logistic回归模型-CSDN博客
12章8节:详解不同逻辑回归模型的比较,和如何进行变量优化-CSDN博客
12章9节:深度讲解有序多分类Logistic回归模型的分析-CSDN博客
12章10节:条件Logistic回归模型的分析-CSDN博客
第十三章:生存分析模型
13章4节:认识比例风险模型和Cox比例风险模型,学会从协变量的调整选择最优模型-CSDN博客
13章5节:用逐步回归方法来选择模型协变量,比例风险假定的检验和森林图的绘制-CSDN博客
第十四章:匹配技术应用
14章2节:匹配结果的可视化和匹配后新数据分析-CSDN博客
第十五章:判别和聚类分析
15章2节:线性判别分析预测模型构建评估和可视化演示-CSDN博客
15章4节:K-Means聚类分析的运用,和改进算法的K-Means++-CSDN博客
15章5节:实现k-medoids聚类算法的PAM和CLARA方法-CSDN博客
第十六章:机器学习入门
16章2节:机器学习在临床预测中的应用场景,与临床预测模型的关键步骤解析-CSDN博客
16章3节:详析训练数据集、测试数据集和验证数据集及其划分策略-CSDN博客
16章4节:采用随机抽样法和等比抽样法对数据集进行二份及三份的划分-CSDN博客
16章5节:划分数据的多次随机抽样的Bootstrap法和加权随机抽样法-CSDN博客
16章6节:交叉验证概述与分类,R中K折交叉验证的详细解析-CSDN博客
16章7节:机器学习算法解读,与数值预测回归模型构建-CSDN博客
16章8节:朴素贝叶斯分类预测模型,从构建、解析到实战-CSDN博客
16章9节:认识决策树,构建CART算法的决策树模型-CSDN博客
16章10节:深度解析如何构建随机森林算法预测模型-CSDN博客
16章11节:构建人工神经网络反向传播算法预测模型-CSDN博客
16章12节:认识机器学习的模型评估,掌握数值型数据的模型评估方法-CSDN博客
16章14节:评估和对比预测模型的ROC曲线和AUC值-CSDN博客
16章15节:六大ROC曲线扩展包的对比,和其它评估曲线的绘制-CSDN博客
第十七章:文献计量学
17章2节:文献计量学的国外数据库的数据采集,WOS数据库和PUBMED数据库的文献信息批量下载和分析
17章10节:为构建网络图从文献数据中提取特定信息-CSDN博客
17章12节:耦合网络可视化,从常规网络图到耦合分析聚类图的深度讲解-CSDN博客
17章13节:共被引网络、历史共被引网络和共词网络的可视化-CSDN博客
17章14节:概念结构图,贡献度最高文献因子图和最被引用文献因子图-CSDN博客
17章15节:文献计量学的语义地图和主题演化分析图-CSDN博客
17章16节:PubMed数据库的数据提取和可视化-CSDN博客
第十八章:时间序列分析
18章1节:认识时间序列分析,创建和整理时间序列数据-CSDN博客
18章3节:认识ARIMA模型和模拟其数据,讲解平稳性检验-CSDN博客
18章4节:ACF和PACF的可视化,和识别最佳模型-CSDN博客
18章5节:如何应用SARIMA模型来进行时间序列数据的预测-CSDN博客
18章6节:Facebook 的时间序列预测的 Prophet 模型-CSDN博客
第十九章:NHANES数据库
19章1节:认识二次数据分析和NHANES数据库-CSDN博客
19章2节:下载NHANES数据并使用R进行读取-CSDN博客
19章3节:NHANES数据的下载读取、追加和合并-CSDN博客
19章4节:NHANES的抽样权重、方差估计和估计值评估-CSDN博客
19章5节:处理NHANES数据的options和svydesign函数-CSDN博客
19章5节:处理NHANES数据的options和svydesign函数-CSDN博客
19章6节:复现NHANES的美国成人抑郁症患病率研究(上)-CSDN博客
19章7节:复现NHANES的美国成人抑郁症患病率研究(中)-CSDN博客
19章8节:复现NHANES的美国成人抑郁症患病率研究(下)-CSDN博客
19章9节:一步一步构建高效读取NHANES数据的自定义函数-CSDN博客
19章10节:如何解决 NHANES 数据合并所遇原表差异问题-CSDN博客
19章11节:2025年后如何使用扩展包访问、下载和分析 NHANES 数据-CSDN博客
19章12节:如何直接显示NHANES某个变量的代码本-CSDN博客
19章13节:根据关键词检索NHANES变量和得到相关信息,并且通过指定URL直接下载数据-CSDN博客
19章14节:下载 NHANES 的数据清单、搜索表格和表格里面的变量汇总-CSDN博客
19章15节:快速获取 NHANES 特定的表格信息和变量信息-CSDN博客
第二十章:gglot2扩张包
20章1节:模型系数图、相关矩阵图、双变量成对矩阵图-CSDN博客
20章4节:绘制高级散点矩阵图和多样生存曲线图-CSDN博客
20章5节:绘制分面直方图,多元时间序列图和二元密度图-CSDN博客
20章6节:绘制切尔诺夫面图(疼痛评分的笑脸可视化)和时间序列数据的日历热图-CSDN博客
20章7节:绘制时间序列地平线图和时间序列流图-CSDN博客
20章11节:绘制议会图和深度讲解绘制山峦图(岭线图)-CSDN博客
20章12节:多元统计分析的可视化扩展包,从主成分分析到时间序列,从K-means聚类到广义线性模型-CSDN博客
第二十一章:三维图形可视化
21章2节:深度讲解如何绘制三维透视图,从内置函数到扩展包函数-CSDN博客
21章4节:绘制三维切片图和三维切片轮廓图,文末添加三维文本信息-CSDN博客
21章5节:如何绘制三维曲面图、三维球面图和三维曲面地形图-CSDN博客

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)