📂
在R语言中操作的数据常见格式包括 txt、csv、xlsx 等。 掌握基本的数据读取函数是数据分析的第一步。本文将介绍各种读取函数的使用方法和选择建议。
1. 基础读取函数
read.table() - 读取txt格式
read.table(file, header = FALSE, # 通常设置为TRUE,表示第一行是列名 sep = "", # 分隔符:空格、\t、逗号等 na.strings = c("-9", "?"), # 将这些值转换为NA skip = 0) # 跳过的行数
核心参数说明
| 参数 | 说明 |
|---|---|
| header | 数据是否有列名,通常设为TRUE |
| sep | 数据分隔符(空格、逗号等) |
| na.strings | 指定哪些字符代表缺失值 |
| skip | 读取前跳过多少行 |
read.csv() - 读取csv格式
read.csv(file, header = TRUE, sep = ",") read.csv2(file, header = TRUE, sep = ";") # 欧洲格式,分号分隔
📌 注意:read.csv() 读取逗号分隔文件,read.csv2() 读取分号分隔文件(欧洲常用)。
2. readxl包 - 读取Excel文件
readxl 包是 tidyverse 的一员,专门用于导入 Excel 文件。
# 安装与加载 install.packages("readxl") library(readxl) # 最简单的写法 read_excel("文件名.xlsx") # 完整参数 read_excel(path, sheet = NULL, # 工作表名称或索引 range = NULL, # 读取的数据范围 col_names = TRUE, # 第一行是否作为列名 skip = 0) # 跳过开头的行数
💡 提示:readxl 支持 .xls 和 .xlsx 两种格式,自动识别!
3. data.table包 - 读取大文件
当文件太大时,read.csv() 会非常消耗内存和时间。fread() 函数可以大大提高读取速度。
library(data.table) data <- fread("大文件.csv", sep = ",", header = TRUE, na.strings = c("NA"))
⚡
读取速度极快
💾
内存占用低
🔍
自动检测分隔符
4. readr包 - 现代化数据读取
readr 包是 tidyverse 的核心包之一,相比基础包有以下优点:
1. 读取速度更快
2. 生成 tibble 类型
3. 不会把字符转换成因子
4. 不会随意改动列名称
主要函数
| 函数 | 用途 |
|---|---|
| read_csv() | 读取逗号分隔文件 |
| read_tsv() | 读取制表符分隔文件 |
| read_delim() | 读取任意分隔符文件 |
| read_table() | 替代 read.table() |
5. 函数选择速查表
| 场景 | 推荐函数 |
|---|---|
| 小型 txt 文件 | read.table() |
| csv 文件 | read_csv() |
| Excel 文件 | read_excel() |
| 大文件(>100MB) | fread() |
| 特殊格式数据 | 对应专业包(如Seurat) |
📝 总结
✅ 核心要点
- • 基础函数:read.table / read.csv
- • Excel文件:readxl 包
- • 大文件:data.table 的 fread
- • 现代化:readr 包
💡 记住
读取函数的本质是读取数据,只需输入文件名,函数大概率会运行。遇到问题时查阅帮助文档 ?函数名 即可。