用rio包进行数据导出

作者: 新云旧雨 | 来源:发表于2019-10-01 12:15 被阅读0次

    笔记说明

    数据导入利器——rio包中记录了rio包的数据导入功能,本次笔记记录rio包的数据导出功能。
    主要参考:https://cran.r-project.org/web/packages/rio/vignettes/rio.html#data_export

    进行导出数据操作前的准备工作

    mlti.xlsx文件中有两个sheet,分别存有mtcars数据和iris数据

    library(rio)
    multi <- import_list("data/multi.xlsx")
    str(multi)
    
    ## List of 2
    ##  $ mtcars:'data.frame':  32 obs. of  11 variables:
    ##   ..$ mpg : num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
    ##   ..$ cyl : num [1:32] 6 6 4 6 8 6 8 4 4 6 ...
    ##   ..$ disp: num [1:32] 160 160 108 258 360 ...
    ##   ..$ hp  : num [1:32] 110 110 93 110 175 105 245 62 95 123 ...
    ##   ..$ drat: num [1:32] 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
    ##   ..$ wt  : num [1:32] 2.62 2.88 2.32 3.21 3.44 ...
    ##   ..$ qsec: num [1:32] 16.5 17 18.6 19.4 17 ...
    ##   ..$ vs  : num [1:32] 0 0 1 1 0 1 0 1 1 1 ...
    ##   ..$ am  : num [1:32] 1 1 1 0 0 0 0 0 0 0 ...
    ##   ..$ gear: num [1:32] 4 4 4 3 3 3 3 4 4 4 ...
    ##   ..$ carb: num [1:32] 4 4 1 1 2 1 4 2 2 4 ...
    ##  $ iris  :'data.frame':  150 obs. of  5 variables:
    ##   ..$ Sepal.Length: num [1:150] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
    ##   ..$ Sepal.Width : num [1:150] 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
    ##   ..$ Petal.Length: num [1:150] 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
    ##   ..$ Petal.Width : num [1:150] 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
    ##   ..$ Species     : chr [1:150] "setosa" "setosa" "setosa" "setosa" ...
    

    生成两个dataframe

    mtcars <- multi$mtcars
    iris <- multi$iris
    

    rio包的数据导出功能

    用rio包的export()将数据导出。需要提供两个参数:想要导出的数据文件名和导出路径。
    rio包的数据导出功能相比其数据导入功能而言比较局限,目前(2019.10.1)支持以下导出格式:

    export(mtcars, "data/export/mtcars.csv")
    export(mtcars, "data/export/mtcars.rds")
    export(mtcars, "data/export/mtcars.dta")
    

    另外导出为Excel文件也可以实现,但可能需要额外进行一些设置(一次性设置后就可以了)。因为我的电脑上直接可以实现,额外设置的操作就不在此记录了,可以参见:https://b-rodrigues.github.io/modern_R/reading-and-writing-data.html#the-swiss-army-knife-of-data-import-and-export-rio

    export(mtcars, "data/export/mtcars.xlsx")
    

    有一些格式的文件(如Excel, Rdata files)支持一个数据文件里包含多个数据对象,export()也支持将多个数据集导出只这些格式的文件:

    export(list(mtcars = mtcars, iris = iris), "data/export/multi.xlsx")
    export(c("mtcars", "iris"), "data/export/multi.rdata")
    

    rdata文件的使用:

    load("data/export/multi.rdata")
    

    相关文章

      网友评论

        本文标题:用rio包进行数据导出

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