|
发表于 2022-8-10 10:47:14
|
查看: 1142 |
回复: 0
背景
一般情况下我们需要分析的数据都是存储在文件中,那么利用 R 分析数据的第一步就是将输入读入 R 语言。如果分析的数据是记录着纸质载体上,还需要将数据手动录入,然后保存为一个文件。在 R 中分析文件一般是文件文件,通常是以逗号分隔的 csv 文件,如果数据本身包含逗号,就需要使用制表符 tab 分隔的文件。有些情况下还有需要处理其他统计软件生成的文件,例如 Excel 生成的 xlsx 格式文件等。R 可以很方便的读写多种格式文件。
一、文件类型
1、csv
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV 文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。
2、tsv
TSV:tab separated values;即“制表符分隔值”,如:
二、Rstudio 导入文件
data :文件路径
header : 第一行是否作为表头
sep :分隔符
row.names: 哪一列作为行名
stringsAsFactors: 字符串是否作为因子
na.strings :空值用什么表示
三、函数读入文件
在 Rstudio 中,可以通过点击鼠标读入文件,在读入文件之前,需要对文件格式和内容有所了解。例如文件是否是一个标准的列表形式,也就是是否为结构化数据。文件存储格式,是二进制还是纯文本,如果是纯文本,文件扩展名是什么?用什么分隔符分割?文件有多少行,多少列? 第一行是否为列名,第一列是否为行名?清楚了这些之后就可以读入文件了。
R提供了大量读入文件的函数,这些函数通常是以read.*开头,后面接文件扩展,例如read.csv,read.xlsx,read.spss 等。其中最常用的为 read.table。read.table 包括以下重要选项参数。
1、data:后面接文件路径,注意文件路径一定要加引号,注意 windows 系统文件路径的写法。
2、header:只接逻辑值 TRUE 或者 FALSE,代表第一行是否作为表头,默认为 FALSE。如果不设置,R 会默认添加 V1,V2 等作为列名。
3、sep:分隔符,读入文件最重要的一个选项,如果设置错误,文件格式很乱,通常就是逗号“,”,制表符“\t”或者冒号“:”等。
4、row.names:后面接数字,指定哪一列作为行名,默认是 0,通常可以设置为 1。
5、stringsAsFactors:后面接逻辑值,R 语言默认会将文件中的字符串自动转换为因子,如果不像这么做,可以设置为 F。
6、na.strings:后面接字符串,指定文件中空值的表示方法。
- #查看当前目录下文件
- dir()
- #读入一个文件,存入 x 变量
- x <- read.table("Rdata/CountMatrix.csv")
- #读入文件,指定分隔符
- x <- read.table(file = "CountMatrix.csv",header = T,sep = ",")
- #读入文件,指定分隔符和列名
- x <- read.csv(file = "CountMatrix.csv",header = T,row.names = 1)
- #读入文件,指定分隔符、表头与行名以及字符串不作为因子
- x <- read.csv(file = "Rdata/CountMatrix.csv",header = T,sep = ",",row.names =
- 1,na.strings = "NA",stringsAsFactors = F)
复制代码 无论使用哪个函数读取文件,R 中读入的数据都存储为数据框这种数据类型。通常将文件保存为一个变量。读入文件之后,需要验证文件是否读入成功,通常使用 head 函数截取文件头部显示出来,判断格式是否正确,在 Rstudio 中也可以使用 View()函数将全部内容显示出来。如果格式不正确就需要修改命令重新读取文件;如果没有问题,就可以对数据进行后续的分析了。
- #查看数据结构
- class(dta)
- #查看文件头部
- head(dta)
- #查看文件尾部
- tail(dta)
- #查看行名,列名
- rownames(dta)
- colnames(dta)
- #View 窗口中查看数据
- View(dta)
- #查看数据属性信息
- str(dta)
复制代码
四、函数写入文件
数据处理结束之后,需要将存储在变量中的结果保存到文件中,R 提供了大量写入文件的函数,这些函数通常与 read 系列都是对应的,用法也类似使用起来也并不难。
- #写入文件
- write.csv(x = dta,file = "matrix.csv",sep = ",",append = F)
复制代码 x:要写入文件中的数据集名字。
File:文件路径和文件名,注意加引号,需要自己给文件命名,注意扩展名最好与分隔符匹配。
sep:分隔符,如果是 csv 文件,sep 设置为逗号,制表符分割,则设置为“\t”
append:接逻辑值,是否追加写入。
五、读写 excel 文件
Excel 是全球最流行的电子表格程序,即使你可以使用 R 语言处理所有的数据分析工作,但是总有一天你不得不处理别人传给你 Excel 生成的电子表格需要你帮忙处理。还好 R 可以很方便的处理 excel 的电子表格。
通常处理 Excel 表格有两种方法。
方法一:使用excel先打开,另存为 csv 或者 tsv,再去R。
方法二:readr,xlsx,openxlsx 等包
R 中有大量可以读写 Excel 电子表格的包,使用方法与 read.table()函数类似,只需注意Excel 的电子表格分为工作簿与工作表,一个工作簿中包含多个工作表(sheet),因此需要指定读取工作簿中那个工作表,可以指定工作表的名字,也可以使用顺序号。
- #安装 openxlsx 包
- install.packages("openxlsx")
- #加载 openxlsx 包
- library(openxlsx)
- #读入 excel 文件,指定 sheet 号
- x <- read.xlsx(file = "vlookup.xlsx",sheetIndex = 1,header = T)
- #写入 Excel 文件,设置 sheet 名
- write.xlsx(x = x,sheetName = "dta",file = "dta.xlsx",append = F)
复制代码
六、其他 R 数据格式
除了常规各种文本表格之外,R 还提供了两种文件格式,分别是 RDS 与 Rdata 格式。RDS可以用来存储单个数据集,Rdata 可以存储多个 R 数据集。R 内置格式的好处是对 R 软件支持更好,便于分享,且内置压缩算法,同样的数据内容,文件更小,便于传输。
- ?iris
- head(iris)
- getwd()
- dir()
- saveRDS(iris,file="iris.RDS")
- rdsdata <- readRDS("iris.RDS")
- #Write RData file
- y <- mtcars
- save(iris,y,file = "iris.Rda")
- load('iris.Rda')
- save.image()
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
|