首页 > 原创文章 > 软件开发 > 查看文章

R语言读取多个zip文件数据的方法

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-07-31 08:48 浏览: 1034 IP属地: 深圳
点击阅读全文

如何实现用R语言一次读取多个zip文件,获取zip文件里的数据?今天丁老师教给大家。

R语言可以使用zip_vector函数,可以读取所有zip压缩文件里的内容,并且无需使用循环。

代码示例:

datprocessorC <- function(zip_vector) {
    f <- function(zipfile) {
        fls <- unzip(zipfile, list = TRUE)$Name
        lapply(fls, \(f) fread(unzip(zipfile, files = f))) |> rbindlist(fill = TRUE)
    }
    lapply(zip_vector, f) |> rbindlist(fill = TRUE)}
    
#从list.files()返回的压缩文件向量上运行
importC <- datprocessorC(zips)

下面是另一个函数,可以不解压zip文件,直接通过unz/readr::read_csv读取,并且不生成zip压缩包里的文件,通通直接读取。但是这个函数提取数据所需的时间大约是datprocessorC的两倍

datprocessorD <- function(zip_vector) {
    f <- function(zipfile) {
        fls <- unzip(zipfile, list = TRUE)$Name
        out <- vector("list", length(fls))
        for(i in seq_along(fls)) {
            tmp <- unz(zipfile, filename = fls[i])
            out[[i]] <- readr::read_csv(file = tmp, show_col_types = FALSE)
        }
        data.table::rbindlist(out, fill = TRUE)
    }
    lapply(zip_vector, f) |> data.table::rbindlist(fill = TRUE)
}


相关文章

Android Kotlin文件转换为Jav...

AndroidKotlin文件可以转换为Java文件,方法为:1.点击菜单Menu Tools Kotlin ShowKotlinBytecode2.点击编译Decompile按钮复制Java代码,完成!

tortoise svn出现no path ...

在日常开发过程中,突然发现svn无法提交和更新,出现“nopathorpathfilespecifiedonthecommandline”的错误,网上搜了一圈百度google以及stackoverflow都没找到真正能解决问题的办法,本...

PHP网页报DOMDocument::loa...

PHP网站,网页打开不正常,显示“DOMDocument::loadHTML():TagheaderinvalidinEntity”错误代码,是怎么回事呢?其实,这是php程序中,使用了newDOMDocument的loadHTML来解...

CodeIgniter框架URL如果去掉in...

在使用PHP框架CI时,有个很恶心的地方就是他的URL需要带上index.php,比如我要建一个user模块,想要实现www.xxx.com/user/的效果,但是在CI框架下必须要www.xxx.com/index.php/user这...

推荐文章

fastadmin非菜单链接,跳转菜单页面的...

在fastadmin中,一个页面的非菜单链接,想要点击后打开指定页面,并且菜单自动展开,该怎么实现呢?经过丁老师研究后,发现超级简单,废话不多说,直接上代码:<a class="btn-addtabs" href=...

微信小程序从开发到实现微信支付的全过程

微信小程序部分一、完善小程序基本信息1.用管理员账号登录微信小程序(https://mp.weixin.qq.com/);2.左侧菜单选择首页;3.完善小程序的基本信息,包括小程序名称、小程序类目、微信认证、微信备案等。二、小程序开发配置1...

videojs宽度高度自适应100%的方法

videojs是一款非常不错的htmlvideo播放器插件,很多同学经常在群里问我,说丁老师这个videojs怎么设置为宽度或者高度自适应呢,不想把video的width和height写死,有没有什么办法呢。丁老师经过研究发现啊,video...

mui的toast修改位置居中

mui的toast默认是在底部的,并且没有参数设置位置,经过研究发现可以通过修改css的方式设置位置,具体方法如下:1.muitoast设置type为divmui.toast('hello', {type: 'div...