R语言文件数据的读入与存储
R语言文件数据的读入与存储

R语言文件数据的读入与存储

R的数据读入与存储我按照数据类型分成两类介绍:

  • 第一类是文本文件的读入与保存,常见的有txt、xlsx、csv、tsv…一般存放的是二维的数据表格。
  • 第二类是R特有的文件格式的读入与保存,RData(rda)、rds…可用于存放R分析的data frame、List或者整个分析环境所有的变量。

文本文件的读入与保存

读入

R文本读入一般使用R base基础包中的read.table()函数

read.table(file, header = FALSE, sep = "", quote = "\"'",
           dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
           row.names, col.names, as.is = !stringsAsFactors, tryLogical = TRUE,
           na.strings = "NA", colClasses = NA, nrows = -1,
           skip = 0, check.names = TRUE, fill = !blank.lines.skip,
           strip.white = FALSE, blank.lines.skip = TRUE,
           comment.char = "#",
           allowEscapes = FALSE, flush = FALSE,
           stringsAsFactors = FALSE,
           fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

#file 需要读入的文件在计算机中的绝对路径。
#header 默认为FALSE 即数据框的列名为V1,V2...,设置为TRUE时第一行作为列名。
#sep  字段分隔符。文件中每一行的值都由此字符分隔。如果sep = ""(read.table的默认值),分隔符为“空格”,即一个或多个空格、制表符、换行符或回车符。
#quote 引号字符集。用于指定 包围字符型数据的字符。默认情况下,字符串可以被 " 或 ’ 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。
#fill 是否丢弃文件尾部的空行
#check.name 检查变量名在R中是否符合规定,不合规定的会强制修改。
#row.names 指定哪一行作为读入数据框的行名
#col.names 指定哪一列作为读入数据框的列名
#comment.char = “#” 默认情况下,read.table 用 # 作为注释标识字符,这一行就不会被读入。若数据中没有注释,则令comment.char=''可以加快读取速度。
na.strings = “NA” 指定什么样的字符表示值缺少
#dec 指定用于表示小数点的字符。
#as.is = !stringsAsFactors 字符向量是否转换成因子(仅仅这个功能),TRUE时保留为字符型
#skip = 0 跳过文件的前n行(skip = n)

#更多参数细节可在R中输入?read.table查看官方文档。

保存

R将数据框导出保存一般使用R base基础包中的write.table()函数

write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
            eol = "\n", na = "NA", dec = ".", row.names = TRUE,
            col.names = TRUE, qmethod = c("escape", "double"),
            fileEncoding = "")

#x 需要保存的变量的名字
#file 变量保存到计算机的具体文件名
#append 写入方法,是附加写入还是覆盖写入
#quote 引号字符集。数据内容是否需要用引号将每个单独括起来
#sep 字段分隔符。文件中每一行的值都由此字符分隔
#na 缺失数据用什么符号填充
#row.names 数据框的行名是否要一起保存
#col.names 数据框的列名是否要一起保存

#更多参数细节可在R中输入?write.table查看官方文档。

R特有的文件格式的读入与保存

  • 一、RData(rda):捕捉 R 环境的快照(R 对象的储存仓库)
    • RData 格式就如同 R 环境的快照,它包含工作空间中所有对象的状态,如数据框、列表、函数和模型。它的优势在于快速加载和保存整个 R 环境,且可以独立于 R 环境加载。(我的测试下RData和rda应该是相同的工作原理,都可以存储多个对象)
  • 二、rds:二进制格式的 R 对象
    • RDS 格式是 R 语言对象的二进制序列化格式。它只能存储一个对象。二进制格式使得 RDS 格式的文件更小,加载速度更快,且跨平台兼容,可以在不同的操作系统上加载和使用。
RData(rda)rds
保存save()saveRDS()
读入load()readRDS()
区别可以同时存储多个对象;以二进制存储,速度更快;
载入对象时可以重新命名
#创建两个变量
mtcars <- mtcars
iris   <- iris

save(mtcars,iris,file = "./test1.RData") #可以同时存储多个对象到一个文件里
rm(mtcars,iris)                          #删除当前环境的变量
load("./test1.RData")                    #载入test1.RData文件
ls()                                     #查看载入的结果
###############################################################################################
#创建一个变量
women <- women
saveRDS(women,file = "./test2.rds")            #只能存储一个对象到文件里,但是以二进制格式存储
rm(women)                                      #删除当前环境的变量
newname_women <- readRDS(file = "./test2.rds") #读入./test2.rds文件赋值给newame_women变量
ls()                                           #查看载入的结果
 #

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注