生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

279

主题
发表于 2022-8-10 10:47:14 | 查看: 629| 回复: 0
背景
       一般情况下我们需要分析的数据都是存储在文件中,那么利用 R 分析数据的第一步就是将输入读入 R 语言。如果分析的数据是记录着纸质载体上,还需要将数据手动录入,然后保存为一个文件。在 R 中分析文件一般是文件文件,通常是以逗号分隔的 csv 文件,如果数据本身包含逗号,就需要使用制表符 tab 分隔的文件。有些情况下还有需要处理其他统计软件生成的文件,例如 Excel 生成的 xlsx 格式文件等。R 可以很方便的读写多种格式文件。
一、文件类型
1、csv
       逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV 文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。
  1. name,age
  2. 张三,20
  3. 李四,30
复制代码

2、tsv
       TSV:tab separated values;即“制表符分隔值”,如:
  1. name age
  2. 张三 20
  3. 李四 30
复制代码

二、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:后面接字符串,指定文件中空值的表示方法。

  1. #查看当前目录下文件
  2. dir()
  3. #读入一个文件,存入 x 变量
  4. x <- read.table("Rdata/CountMatrix.csv")
  5. #读入文件,指定分隔符
  6. x <- read.table(file = "CountMatrix.csv",header = T,sep = ",")
  7. #读入文件,指定分隔符和列名
  8. x <- read.csv(file = "CountMatrix.csv",header = T,row.names = 1)
  9. #读入文件,指定分隔符、表头与行名以及字符串不作为因子
  10. x <- read.csv(file = "Rdata/CountMatrix.csv",header = T,sep = ",",row.names =
  11. 1,na.strings = "NA",stringsAsFactors = F)
复制代码
      无论使用哪个函数读取文件,R 中读入的数据都存储为数据框这种数据类型。通常将文件保存为一个变量。读入文件之后,需要验证文件是否读入成功,通常使用 head 函数截取文件头部显示出来,判断格式是否正确,在 Rstudio 中也可以使用 View()函数将全部内容显示出来。如果格式不正确就需要修改命令重新读取文件;如果没有问题,就可以对数据进行后续的分析了。

  1. #查看数据结构
  2. class(dta)
  3. #查看文件头部
  4. head(dta)
  5. #查看文件尾部
  6. tail(dta)
  7. #查看行名,列名
  8. rownames(dta)
  9. colnames(dta)
  10. #View 窗口中查看数据
  11. View(dta)
  12. #查看数据属性信息
  13. str(dta)
复制代码


四、函数写入文件
       数据处理结束之后,需要将存储在变量中的结果保存到文件中,R 提供了大量写入文件的函数,这些函数通常与 read 系列都是对应的,用法也类似使用起来也并不难。

  1. #写入文件
  2. 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),因此需要指定读取工作簿中那个工作表,可以指定工作表的名字,也可以使用顺序号。

  1. #安装 openxlsx 包
  2. install.packages("openxlsx")
  3. #加载 openxlsx 包
  4. library(openxlsx)
  5. #读入 excel 文件,指定 sheet 号
  6. x <- read.xlsx(file = "vlookup.xlsx",sheetIndex = 1,header = T)
  7. #写入 Excel 文件,设置 sheet 名
  8. write.xlsx(x = x,sheetName = "dta",file = "dta.xlsx",append = F)
复制代码


六、其他 R 数据格式
       除了常规各种文本表格之外,R 还提供了两种文件格式,分别是 RDS 与 Rdata 格式。RDS可以用来存储单个数据集,Rdata 可以存储多个 R 数据集。R 内置格式的好处是对 R 软件支持更好,便于分享,且内置压缩算法,同样的数据内容,文件更小,便于传输。

  1. ?iris
  2. head(iris)
  3. getwd()
  4. dir()
  5. saveRDS(iris,file="iris.RDS")
  6. rdsdata <- readRDS("iris.RDS")
  7. #Write RData file
  8. y <- mtcars
  9. save(iris,y,file = "iris.Rda")
  10. load('iris.Rda')
  11. save.image()
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人

GMT+8, 2024-5-4 22:56 , Processed in 0.054726 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表