R语言:使用 readr 包进行数据导入和解析

readr 包是 R 语言中专门用于读取和写入各种格式数据文件的工具包。本文将总结 readr 包的常见数据文件类型、获取/修改工作路径的方法,以及数据的读取与写入功能,最后还会介绍一些解析函数的用法。

1. 常见数据文件类型

readr 包支持多种常见的数据文件类型:

  • CSV(Comma-Separated Values)文件:以逗号作为分隔符的文件。
  • TSV(Tab-Separated Values)文件:以制表符作为分隔符的文件。
  • TXT文件:文本文件,数据可以用逗号或其他字符作为分隔符。
  • Excel 文件(xls 和 xlsx) :需要加载 readxl 包来读取 Excel 文件。
  • RDS文件:R 数据文件,适用于保存 R 中的对象。
2. 获取/修改工作路径

在 R 中,工作路径(working directory)是当前 R 会话操作文件的默认位置。我们可以使用以下函数获取或修改工作路径:

r 复制代码
# 获取当前工作路径
getwd()

# 设置新的工作路径
setwd("/path/to/your/directory")

也可以通过 RStudio 界面来设置工作路径:

  • Session -> Set Working Directory -> Choose Directory
  • 修改全局设定:Tools -> Global Options -> Default working directory
3. 数据读取与写入

readr 包提供了多种函数来读取和写入不同类型的数据文件。下面是一些常用的函数:

读取CSV文件

r 复制代码
library(readr)

# 读取 CSV 文件
data <- read_csv("data.csv")

# 常用参数
data <- read_csv("data.csv", show_col_types = TRUE, skip = 2, comment = "#", col_names = c("Column1", "Column2"), na = "NA", col_types = cols(
  Column1 = col_double(),
  Column2 = col_character()
))

写入CSV文件

r 复制代码
# 写入 CSV 文件
write_csv(data, "output.csv")

其他读取函数

r 复制代码
# 读取分隔符为 ";" 的 CSV 文件
data_csv2 <- read_csv2("data_csv2.csv")

# 读取 TSV 文件
data_tsv <- read_tsv("data.tsv")

# 读取自定义分隔符文件
data_delim <- read_delim("data.txt", delim = "|")

# 读取固定宽度文件
data_fwf <- read_fwf("data.fwf")

# 读取表格文件
data_table <- read_table("data.txt")

# 读取日志文件
data_log <- read_log("log.txt")

# 读取 RDS 文件
data_rds <- read_rds("data.rds")

读取 Excel 文件

需要加载 readxl 包:

r 复制代码
library(readxl)

# 读取 Excel 文件
data_excel <- read_excel("data.xlsx")

写入 RDS 文件

r 复制代码
# 写入 RDS 文件
write_rds(data, "output.rds")
4. 解析函数

解析函数用于将字符向量解析为其他类型的数据。readr 提供了一些常用的解析函数:

r 复制代码
# 解析整数
parse_integer("123")

# 解析双精度数
parse_double("123.45")

# 解析数字,忽略非数字字符
parse_number("$123,456.78")
相关推荐
饼干哥哥6 天前
开源Skills|搭建亚马逊动态关键词库系统,每天抓SSS级机会词
人工智能·深度学习·数据分析
倔强的石头_7 天前
企业工商数据源站点:无验证无拦截,批量获取工商数据完整方案
数据分析
hboot13 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
王小王-12315 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
Database_Cool_15 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
YangYang9YangYan15 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
砚底藏山河15 天前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven
GZ同学15 天前
单双变量Ripley’s K函数 R 语言实现
开发语言·r语言
jarreyer15 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel