R 文件读取

✅ 1. 基本读取函数(Base R)

函数 用途 示例
read.table() 读取通用表格数据(需指定分隔符) read.table("data.txt", sep = ",")
read.csv() 读取 CSV 文件(逗号分隔) read.csv("data.csv")
read.csv2() 读取欧式 CSV(分号分隔) read.csv2("data.csv2")
read.delim() 读取制表符分隔文件 read.delim("data.tsv")
readLines() 按行读取文本文件(如日志) readLines("log.txt")
scan() 读取纯文本数据到向量 scan("data.txt")
source() 读取并执行 R 脚本 source("script.R")
load() 读取 .RData 文件 load("data.RData")
unserialize() 读取 .rds 数据对象 unserialize(file("object.rds"))
readRDS() 读取 .rds 文件对象 readRDS("object.rds")

📗 2. 高性能读取函数(推荐)

函数 用途
data.table fread() 读取大文件最快速(支持 CSV/TSV)
readr read_csv(), read_tsv(), read_delim() 更快且类型自动识别(tidyverse)
readr read_lines(), read_file() 读取文本、逐行文本
vroom vroom() 多文件异步读取(高性能)

✅ 示例:

library(data.table)
fread("bigdata.csv")

library(readr)
read_csv("data.csv")

📘 3. Excel 文件读取

函数 描述
readxl read_excel() 读取 .xls.xlsx(无需 Java)
openxlsx read.xlsx() 无需依赖,支持格式控制
xlsx read.xlsx() Java 依赖,可读取多个 sheet

✅ 示例:

library(readxl)
read_excel("grades.xlsx", sheet = 1)

🌐 4. Web / API / URL 数据

函数 说明
read.csv("http://...") 可直接读取远程 CSV
jsonlite::fromJSON() 读取 JSON(本地或 API)
xml2::read_xml() 读取 XML 数据
httr::GET(), content() 配合 JSON/XML 读取 API
rvest::read_html() 读取网页(用于爬虫)

🗄️ 5. 数据库连接与读取

函数 说明
DBI dbConnect(), dbReadTable(), dbGetQuery() 通用数据库操作接口
RSQLite 连接 SQLite 数据库
RODBC / odbc 连接 MySQL、SQL Server、Oracle 等
RMariaDB, RPostgres 专用数据库驱动

✅ 示例:

library(DBI)
con <- dbConnect(RSQLite::SQLite(), "mydb.sqlite")
data <- dbReadTable(con, "users")

📦 6. 其他数据格式

类型 函数
JSON fromJSON() jsonlite
XML read_xml() xml2
YAML yaml.load_file() yaml
Feather read_feather() arrow
Parquet read_parquet() arrow
SAS read_sas() haven
SPSS read_sav() haven
Stata read_dta() haven
HDF5 h5read() rhdf5

🔐 7. 压缩与特殊文件

类型 函数 说明
.gz, .bz2 gzfile(), bzfile() 可与 readLines() 等函数结合
zip 文件 unz() 读取压缩包中指定文件
多行日志 readLines() + grep() 日志筛选

✅ 推荐组合总结

需求 推荐函数
常规 CSV read_csv() (readr), fread() (data.table)
Excel read_excel() (readxl), read.xlsx() (openxlsx)
大数据 fread(), vroom()
多表格格式 read_delim(), read_csv2()
API / JSON fromJSON() + httr::GET()
数据库 DBI + 数据库驱动
SPSS/SAS haven::read_sav(), read_sas()
XML/YAML xml2, yaml

🧪 示例练习

library(readr)
csv_data <- read_csv("students.csv")

library(readxl)
xls_data <- read_excel("grades.xlsx")

library(jsonlite)
json_data <- fromJSON("https://api.example.com/data.json")

library(data.table)
fast_data <- fread("big_data.csv")

posted @ 2025-05-19 11:00  tomorgen  阅读(35)  评论(0)    收藏  举报