【R语言】数据的读取
目录
- RData数据
- reader高效读取数据
- 读取Excel数据
- 读取SPSS、SAS、STATA数据
RData数据
使用R语言自带的iris数据集做演示
ls() #查看工作环境中存在哪些变量,运行结果character(0)
data(iris)
head(iris)#显示前6行数据
ls() #运行结果[1] "iris"#使用save( )函数将iris储存成iris.RData数据集
#Save( )函数的第一个参数是需要存储的对象,第二个参数是存储文件的路径
save(iris,file="D:/a_DUFE/000master_gogogo/R/深入浅出R语言数据分析/iris.Rdata")
#注意路径的斜杠是反斜杠#删除已经导入的所有数据对象
rm(list=ls())
ls() #运行结果character(0)#RData格式的数据可以通过load( )函数进行加载
#RData格式的数据可以通过load( )函数进行加载
load("D:/a_DUFE/000master_gogogo/R/深入浅出R语言数据分析/iris.Rdata")
ls() #运行结果[1] "iris"#多个数据集存为一个RData文件
iris1 <- iris #构建了一个新的数据集iris1
ls() #运行结果 [1] "iris" "iris1"
save(iris1,iris,file="D:/a_DUFE/000master_gogogo/R/深入浅出R语言数据分析/iris.Rdata")
rm(list=ls())
ls() #运行结果 character(0)
load("D:/a_DUFE/000master_gogogo/R/深入浅出R语言数据分析/iris.Rdata")
ls() #运行结果 [1] "iris" "iris1"
reader高效读取数据
#安装reader包,快速、友好的方式读取矩阵数据,比R语言自带的读取数据函数要快很多
#install.packages()函数用于下载指定包
install.packages("readr")
#reader包中的主要函数
read_csv() #读取以逗号分隔的文件,如.csv文件、.tsv文件
read_csv2() #导入以分号为分隔符的.csv文件
read_tsv() #读取以制表符为分隔符的文件
read_table() #读取以空格为分隔符的文件read_delim() #与read_csv类似,但是与其可以读取以任意符分割的文件,通过delim参数指定分隔符
它们的参数一样
col_names:可以是FALSE、TRUE或者一个字符向量,默认是TRUE。参数设置为TRUE表示读取第一行作为列明,参数设置为字符向量,表示将字符向量作为数据集的列名字
skip:一个数值,表示读取数据时跳过多少条数据
n_max:一个数值,表示最多读取多少条数据
#R语言自带的数据读取函数
read.csv() #读取以逗号为分隔符的数据
read.table() #读取以空格为分隔符的数据
read.delim() #读取以换行符为分隔符的数据
读取Excel数据
使用readxl包,提供了高效读取Excel数据的方式
read_excel() #自动判断文件的扩展名是xls还是xlsx
read_xls()
read_xlsx()
> install.packages ("readxl")
> library(readxl)
> (.packages())
> datasets <- readxl_example("datasets.xlsx")#默认读取Excel中第一个Sheet的数据
> read_excel(datasets)
# A tibble: 150 × 5Sepal.Length Sepal.Width Petal.Length Petal.Width Species<dbl> <dbl> <dbl> <dbl> <chr> 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
# ℹ 140 more rows
# ℹ Use `print(n = ...)` to see more rows#读取Excel中第2个Sheet的数据
> read_excel(datasets,2)
# A tibble: 32 × 11mpg cyl disp hp drat wt qsec vs am gear carb<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
# ℹ 22 more rows
# ℹ Use `print(n = ...)` to see more rows#如果Excel中Sheet有名称,也可以通过Sheet名称来指定
> read_excel(datasets,sheet = "chickwts")
# A tibble: 71 × 2weight feed <dbl> <chr> 1 179 horsebean 2 160 horsebean 3 136 horsebean 4 227 horsebean 5 217 horsebean 6 168 horsebean 7 108 horsebean 8 124 horsebean 9 143 horsebean
10 140 horsebean
# ℹ 61 more rows
# ℹ Use `print(n = ...)` to see more rows
读取SPSS、SAS、STATA数据
使用haven包,用于读取其他统计软件的数据
install.packages ("haven")
#读取SAS数据
> path <- system.file("examples","iris.sas7bdat",package = "haven")
> path
[1] "D:/R-4.3.0/library/haven/examples/iris.sas7bdat"
> read_sas(path)
# A tibble: 150 × 5Sepal_Length Sepal_Width Petal_Length Petal_Width Species<dbl> <dbl> <dbl> <dbl> <chr> 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
# ℹ 140 more rows
# ℹ Use `print(n = ...)` to see more rows
关于system.file
#读取SPSS数据
> path <- system.file("examples","iris.sav",package = "haven")
> path
[1] "D:/R-4.3.0/library/haven/examples/iris.sav"
> read_sav(path)
# A tibble: 150 × 5Sepal.Length Sepal.Width Petal.Length Petal.Width Species <dbl> <dbl> <dbl> <dbl> <dbl+lbl> 1 5.1 3.5 1.4 0.2 1 [setosa]2 4.9 3 1.4 0.2 1 [setosa]3 4.7 3.2 1.3 0.2 1 [setosa]4 4.6 3.1 1.5 0.2 1 [setosa]5 5 3.6 1.4 0.2 1 [setosa]6 5.4 3.9 1.7 0.4 1 [setosa]7 4.6 3.4 1.4 0.3 1 [setosa]8 5 3.4 1.5 0.2 1 [setosa]9 4.4 2.9 1.4 0.2 1 [setosa]
10 4.9 3.1 1.5 0.1 1 [setosa]
# ℹ 140 more rows
# ℹ Use `print(n = ...)` to see more rows
#读取STATA数据
> path <- system.file("examples","iris.dta",package = "haven")
> path
[1] "D:/R-4.3.0/library/haven/examples/iris.dta"
> read_dta(path)
# A tibble: 150 × 5sepallength sepalwidth petallength petalwidth species<dbl> <dbl> <dbl> <dbl> <chr> 1 5.10 3.5 1.40 0.200 setosa 2 4.90 3 1.40 0.200 setosa 3 4.70 3.20 1.30 0.200 setosa 4 4.60 3.10 1.5 0.200 setosa 5 5 3.60 1.40 0.200 setosa 6 5.40 3.90 1.70 0.400 setosa 7 4.60 3.40 1.40 0.300 setosa 8 5 3.40 1.5 0.200 setosa 9 4.40 2.90 1.40 0.200 setosa
10 4.90 3.10 1.5 0.100 setosa
# ℹ 140 more rows
# ℹ Use `print(n = ...)` to see more rows
- 将R语言环境中的数据转换为SAS、SPSS、STATA
write_sas( )、write_sav( )、write_dta( )的第一个参数是源数据集,第二个参数是数据保存的路径。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!