【R语言】获取数据

R语言自带2种数据存储格式:*.RData和***.rds**。

这两者的区别是:前者既可以存储数据,也可以存储当前工作空间中的所有变量,属于非标准化存储;后者仅用于存储单个R对象,且存储时可以创建标准化档案,属于标准化存储。

**load()**函数:读取*.RData格式的数据;

**readRDS()**函数:读取*.rds格式的数据。

一、读取文本数据

R语言使用read.table()函数读取文本文档txt数据。

read.table()函数的5个参数:

  1. file:需要导入的文本数据文件路径和名称,可以是txt、dat、csv等
  2. header:导入时是否带有列标题,默认为TRUE
  3. sep:列与列之间的文本分隔符
  4. stringsAsFactor:导入数据时是否将字符串数据转为因子,默认为TRUE
  5. fileEncoding:文本数据的文件编码,默认设置为UTF-8

R语言的base包中还有read.csv(),read.csv2(),read.delim(),read.delim2()等函数。

以下为示例:

R 复制代码
data <- read.table(file = "D:/Application/21.R语言/test.txt", header=T, sep=",",stringsAsFactor=F,fileEncoding="UTF-8")
head(data)

二、读取Excel数据

1、使用openxlsx包读取

openxlsx包主要通过getSheetNames()函数和read.xlsx()函数实现对Excel数据的读取。

R 复制代码
# 先检查是否已安装了openxlsx包,如果没有,则先安装
if (!require("openxlsx")) {
    install.packages("openxlsx")
}
data1 <- openxlsx::read.xlsx(xlsxFile = "D:/Application/21.R语言/test.xlsx", sheet=1)
head(data1)

2、使用xlsx包读取

xlsx包通过**read.xlsx()**函数读取Excel数据的。

R 复制代码
# 先检查是否已安装了xlsx包,如果没有,则先安装
if (!require("openxlsx")) {
    install.packages("openxlsx")
}
data1 <- xlsx::read.xlsx(File = "D:/Application/21.R语言/test.xlsx", sheetIndex=1, sheetName=NULL)
head(data1)

需要安装java,否则会报错。

3、使用readxl包读取

readxl包通过使用read_excel()函数读取Excel数据。

7个参数:

  1. path:字符型,Excel文件所在的路径和名称;
  2. sheet:字符型或整数型,需要读取的工作簿既可以是工作簿名称(字符串),也可以是工作簿的位置序号(正整数);
  3. range:字符型,读取指定区域的数据,如:B4:D88表示读取B4到D88的数据;
  4. col_names:逻辑型,判断是否使用第一行做为列的名称。
  5. col_type:字符向量或NULL,读取数据每一列的类型,包含skip(忽略),guess(基于被读取的Excel文件本身的单元格类型)、logical(逻辑型)、numeric(数值型)、date(日期型)、text(字符串型)、list(列表项)等;
  6. na:字符串,被读取的Excel文件对缺失值的约定。
  7. trim_ws:逻辑型,判断是否清楚数据末尾的空格。
R 复制代码
# 先检查是否已安装了readxl包,如果没有,则先安装
if (!require("readxl")) {
    install.packages("readxl")
}
data1 <- readxl::read_excel(path = "D:/Application/21.R语言/test.xlsx", sheet=1, range=NULL, col_names=T, col_type=NULL, na="", trim_ws=T)
head(data1)

三、读取数据库数据

暂无

四、读取其它统计工具的数据

1、读取SPSS软件数据

SPSS软件默认数据保存格式为***.sav**,foreign包中的read.spss()函数和haven包中的read.sav()函数或read_spss()函数可读取此类数据。

以foreign包中自带的electric.sav数据集为示例:

read.spss()函数的4个关键参数:

  1. file:字符型,需要读取的*.sav文件路径;
  2. use.value.labels:逻辑型,在读取数据时判断是否将变量的标签值转换为R语言因子格式数据,如果变量中出现不满足标签值的数据,将强制转换为NA。
  3. to.data.frame:逻辑型,判断是否将数据转换为数据框,默认值为FALSE,即转换为列表。
  4. use.missings:逻辑型,判断是否将原有数据中定义的缺失值转换为NA,建议设置为TRUE。
R 复制代码
library("foreign")
file <- system.file("files", "electric.sav", package="foreign")
data <- foreign::read.spss(file=file, use.value.labels=T, to.data.frame=T, use.missings=T)
head(data)
dim(data)
str(data)

以haven包读取electric.sav数据集:

read_sav()函数的参数:

  1. file:字符型,需要读取的*.sav文件路径与名称;
  2. encoding:字符型,数据文件的字符编码,一般默认为NULL,即使用与原数据文件相同的编码方式;
  3. user_n:逻辑型,判断是否将原有数据中定义的缺失值转换为NA。
R 复制代码
library("haven")
file <- system.file("files", "electric.sav", package="foreign")
data <- haven::read_sav(file = file, encoding=NULL, user_na=T)
head(data)
dim(data)
str(data)

2、读取SAS软件数据

SAS软件数据集存储于逻辑库中,默认数据保存格式为***.sas7bdat**。

通过foreign包的read.ssd()函数和haven包的read_sas()函数读取。

foreign包中的read.ssd()函数读取:

注意:read.ssd()函数读取SAS数据集的前提是本地要安装SAS软件

read.ssd()函数的参数:

  1. libname:字符型,逻辑库名称,相当于SAS数据集存储的文件夹名称。
  2. sectionnames:字符型,数据集名称,注意,只需要给出数据名称,不需要添加文件后缀。
  3. sascmd:字符型,SAS软件可执行程序安装的路径。
R 复制代码
data <- foreign::read.ssd(libname = system.file("examples", package="haven"),sectionnames="iris", sascmd = "D:/Program Fils/SASHome/SASFoundation/9.4/sas.exe")
head(data)
dim(data)
str(data)

haven包中的read_sas()函数读取:

read_sas()函数的主要参数:

  1. data_file:字符型,需要读取的文件路径;
  2. encoding:字符型,数据文件的字符编码,默认为NULL,即使用与原数据文件相同的编码方式;
  3. col_select:字符串,需要读取数据列的列名称,默认为NULL,即读取全部列。
R 复制代码
file <- system.file("examples", "iris.sas7bdat", package = "haven")
data <- haven::read_sas(data_file = file, encoding = NULL, col_select = NULL)
head(data)
dim(data)
str(data)

3、读取Stata软件数据

Stata软件数据格式是*.dta。

通过foreign包的read.dta()函数和haven包的read_dta()函数读取。

foreign包的read.dta()函数:

read.dta()函数仅支持读取Stata5到Stata12版本的数据,不支持更高级的版本。

R 复制代码
file <- system.file("examples", "iris.dta", package="haven")
data <- foreign::read.dta(file=file, convert.dates=T,convert.factors=T)
head(data)
dim(data)
str(data)

提示版本错误:

haven包的read_dta()函数:

此函数对Stata软件版本没有要求。

R 复制代码
file <- system.file("examples", "iris.dta", package="haven")
data <- haven::read_dta(file=file, encoding=NULL)
head(data)
dim(data)
str(data)
相关推荐
天堂的恶魔9464 分钟前
C++封装
java·开发语言·c++
notfindjob6 分钟前
deepseek API 调用-golang
开发语言·后端·golang
Мартин.40 分钟前
[Meachines] [Easy] Nunchucks Express Nodejs SSTI+AppArmor Bypass+Perl权限提升
开发语言·express·perl
阿猿收手吧!42 分钟前
【CPP】CPP经典面试题
开发语言·c++·面试·协程
去往火星1 小时前
【ffmpeg 到Qt的图片格式转换】精彩的像素:深入解析 AVFrame 到 QImage 的转换
开发语言·qt·ffmpeg
山禾女鬼0012 小时前
JavaScript常见事件和修饰符
开发语言·javascript·ecmascript
程序员小续2 小时前
Node.js学习指南
开发语言·前端·javascript·node.js·ecmascript·es6
Cuit小唐3 小时前
qt使用MQTT协议连接阿里云demo
开发语言·qt
半桔3 小时前
七大排序思想
c语言·开发语言·数据结构·c++·算法·排序算法
四念处茫茫3 小时前
【C语言系列】深入理解指针(5)
c语言·开发语言·visual studio