R语言笔记丨数据储存文件的类型与介绍

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: R语言笔记丨数据储存文件的类型与介绍

今天笔记的主要内容是R语言里文件相关知识,包含CSV、Excel、XML、JSON、MySQL等。

CSV文件

基本介绍

CSV(Comma-Separated Values,字符分隔值,分隔字符也可以不是逗号)是一种非常流行的表格存储文件格式,这种格式适合储存中型或小型数据规模的数据。

CSV 本质是文本,格式简单:数据一行一行的用文本保存,每条记录被分隔符分隔为字段,每条记录都有同样的字段序列。

  • 规则:

1 开头是不留空,以行为单位。

2 可含或不含列名,含列名则居文件第一行。

3 一行数据不跨行,无空行。

4 以半角逗号(即,)作分隔符,列为空也要表达其存在。

5 列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。包含逗号, 双引号, 或是换行符的字段必须放在引号内。

6 文件读写时引号,逗号操作规则互逆。

7 内码格式不限,可为 ASCII、Unicode 或者其他。

8 不支持数字

9 不支持特殊字符

注意:CSV 文件最后一行需要保留一个空行,不然执行程序会有警告信息。

读取方法

read.csv()函数来进行读取,返回的结果为数据框格式。

data <- read.csv("xxx.csv", encoding="UTF-8")
# encoding默认为操作系统文字编码GBK,这里统一为UTF-8防止出错。
print(data)

读取后可以对数据进行查看,例如查看行数、列数,查询某列最大值、指定值,筛选等操作。

#输出data中col列的最大值
max_number = max(data$col)
#输出data中cola列等于xx同时colb列小于mm的数据。
out_n = subset(data,cola == xx & colb < mm )

保存方法

write.csv(待输出文件,文件路径) 函数将数据保存为csv文件。待保存的数据最好是数据框形式。

write.csv(data,"data.csv",row.names = FALSE)
# 将data数据输出保存为csv文件
# row.names = FALSE 表示不添加行名,默认为TRUE,一般不需要开启。

Excel文件

基本介绍

Excel是我们熟知的一种数据文件格式,非常通用,R语言中读写 Excel文件需要安装扩展包"xlsx"。

install.packages("xlsx", repos = "https://mirrors.ustc.edu.cn/CRAN/")
library("xlsx")

几乎所有的 Excel 软件与大多数表格软件一样支持 CSV 格式的数据,所以完全可以通过 CSV 与 R 交互,没必要再使用 Excel。

读取方法

# 读取 xxx.xlsx 第一个工作表数据
data <- read.xlsx("xxx.xlsx", sheetIndex = 1)
print(data)

保存方法

write.xlsx(
x,  #data.frame格式的待保存文件
file,  #保存路径
sheetName="Sheet1",  #工作表名称
col.names=TRUE,  #列名
row.names=TRUE,  #行名
append=FALSE,  #续写状态,TRUE为在源文件上补充,反之为覆盖
showNA=TRUE #显示缺失值
)

想要将data1写da.xlsx的sheet1、data2写da.xlsx的sheet2中,如下:

write.xlsx(x, file, sheetName="sheet1")
write.xlsx(x, file, sheetName="sheet2",append=TRUE)

XML文件

XML 是可扩展标记语言(eXtensible Markup Language),被设计用来传输和存储数据。R语言读写 XML 文件需要安装扩展包:

install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/")

查看XML文件

查看节点数据,某一行使用 [ ], 指定的行和列使用 [[ ]][[]]

# 载入 XML 包
library("XML")
# 设置文件名
out_1 <- xmlParse(file = "xxx.xml")
# 提取根节点
r_n <- xmlRoot(out_1)
# 查看第 2 个节点数据
print(rn[2])
# 查看第 2 个节点的第 3 个数据
print(rn[[2]][[3]])

转换XML数据

  • 转化为列表
library("XML")
xml_data <- xmlToList(out_1)
  • 转化为数据框
library("XML")
xml_dataframe <- xmlToDataFrame("xxx.xml")

JSON 文件

JSON 是存储和交换文本信息的语法,类似 XML,但比 XML 更小、更快,更易解析,R语言读写JSON 文件需要安装扩展包。

install.packages("rjson", repos = "https://mirrors.ustc.edu.cn/CRAN/")
library("rjson")

载入数据

result <- fromJSON(file = "xxx.json")

查看数据:输出第5行使用 [5], 输出3行4列使用 [[3]][[4]]

# 输出第 1 列的结果
print(result[1])
# 输出第 2 行第 2 列的结果
print(result[[2]][[2]])

转化数据

as.data.frame() 函数能够把json文件转化为数据框类型,方便后续处理。

# 载入 rjson 包
library("rjson")
# 获取 json 数据
result <- fromJSON(file = "xxx.json")
# 转为数据框
out_data <- as.data.frame(result)

MySQL 文件

MySQL是最流行的关系型数据库管理系统,R 语言读写 MySQL 文件需要安装扩展包。

install.packages("RMySQL", repos = "https://mirrors.ustc.edu.cn/CRAN/") #原版
install.packages("RMariaDB", repos = "https://mirrors.ustc.edu.cn/CRAN/") #复制版本

读取数据

library(RMySQL)
# dbname 为数据库名
mysqlconnection = dbConnect(MySQL(), user = 'root', password = 'xxxx', dbname = 'test',host = 'localhost')
# 查看数据
dbListTables(mysqlconnection)

使用 dbSendQuery 来读取数据库的表,结果集通过 fetch() 函数来获取。library(RMySQL)

# 查询 sites 表
result = dbSendQuery(mysqlconnection, "select * from sites")
# 获取前面两行数据
data.frame = fetch(result, n = 2)

参考资料:https://www.runoob.com/r

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
4月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
4月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
4月前
|
SQL 数据挖掘 数据处理
R语言数据操作:使用dplyr进行数据处理的深度探索
【8月更文挑战第27天】`dplyr`包以其简洁、强大的数据处理能力,在R语言的数据分析领域占据了重要地位。通过`select()`、`filter()`、`arrange()`、`mutate()`和`summarise()`等核心函数,结合管道操作符`%>%`,我们可以轻松地完成数据筛选、排序、变换和汇总等操作。掌握`dplyr`的使用,将极大地提高我们在R语言中进行
|
6月前
|
Python
R语言遍历文件夹求取其中所有栅格文件的平均值
通过NAvalue(tif_file_all) <- -10000这句代码,将值为-10000的像元作为NoData值的像元,防止后期计算平均值时对结果加以干扰。   接下来,我们通过file.path()函数配置一下输出结果的路径——其中,结果遥感影像文件的名称就可以直接以其所对应的条带号来设置,并在条带号后添加一个_mean后缀,表明这个是平均值的结果图像;但此外,这个仅仅是文件的名字,还需要将文件名与路径拼接在一起,才可以成为完整的保存路径,因此需要用到file.path()函数。最后,将结果图像通过writeRaster()函数加以保存即可,这句代码的解释大家同样参考R语言求取大量遥感
188 0
|
7月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)