美文网首页RR语言知识干货
R语言与生信应用15-R语法-R文件操作3

R语言与生信应用15-R语法-R文件操作3

作者: BioSi | 来源:发表于2019-05-02 23:18 被阅读63次

    R文件操作3

    文本格式

    • dump和dput函数的是文本格式,可以直接编辑,在文件出错时,可以恢复。
    • dumpdput保存了对象的metadata(R对象的属性信息),这降低了结果的可读性,但读入数据时,不需要在对该数据集进行额外的处理。
    • 文本格式文件方便进行版本控制,git等命令只能追踪文本文件的改变。
    • 文件格式用处更广泛,如果文本中出现错误,相比二进制文件,更容易被修复。
    • 文本格式更符合Unix哲学
    • 缺点:占用更多的空间(相比于二进制文件)

    dput操作R对象

    通过dput函数将R对象写入文件,使用dget函数将文件读入R。

    > y <- data.frame(a = 1, b = "a")
    > dput(y)
    structure(list(a = 1,
                   b = structure(1L, .Label = "a",
                                 class = "factor")),
              .Names = c("a", "b"), row.names = c(NA, -1L),
              class = "data.frame")
    > dput(y, file = "y.R")
    > new.y <- dget("y.R")
    > new.y
       a  b 
    1  1  a
    

    dump函数操作R对象

    dump函数可以同时打包多个R对象写入文件,可以使用source函数将文件读回R。

    > x <- "foo"
    > y <- data.frame(a = 1, b = "a")
    > dump(c("x", "y"), file = "data.R") 
    > rm(x, y)
    > source("data.R")
    > y
      a  b 
    1 1  a
    > x
    [1] "foo"
    

    其他数据操作的函数

    数据操作可以通过创建一个链接(其他语言称为文件句柄)来实现。

    • file 创建一个普通文件的链接
    • gzfile 创建一个gzip格式压缩文件的链接
    • bzfile 创建一个bzip2格式压缩文件的链接
    • url 创建一个读取网页的链接

    文件链接

    > str(file)
    function (description = "", open = "", blocking = TRUE,
              encoding = getOption("encoding"))
    
    • description参数设置读取文件的名称
    • open参数设置文件的操作权限
      • “r” 只读
      • “w” 可写并初始化一个新文件
      • “a” 追加
      • “rb”, “wb”, “ab” 读、写、追加二进制格式文件

    文件链接可以帮助用户更灵活地操作文件或外部对象,我们不用直接对该链接进行操作,R中的函数可以直接处理。

    con <- file("foo.txt", "r")
    data <- read.csv(con)
    close(con)
    

    等同于

    data <- read.csv("foo.txt")
    

    按行读取文件

    > con <- gzfile("words.gz") 
    > x <- readLines(con, 10) 
    > x
     [1] "1080"     "10-point" "10th"     "11-point"
     [5] "12-point" "16-point" "18-point" "1st"
     [9] "2"        "20-point"
    

    writeLines读取字符串向量,将向量中每行对象按行写入文件。


    readLines在读取网页数据十分有用

    > con <- url("http://www.baidu.com", "r")
    > x <- readLines(con)
    > head(x)
    [1] "<!DOCTYPE html>"  "<!--STATUS OK-->" ""                 ""                
    [5] ""  
    

    课程分享
    生信技能树全球公益巡讲
    https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
    B站公益74小时生信工程师教学视频合辑
    https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
    招学徒:
    https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw

    相关文章

      网友评论

        本文标题:R语言与生信应用15-R语法-R文件操作3

        本文链接:https://www.haomeiwen.com/subject/mpmonqtx.html