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

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

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-07-31 08:48 浏览: 1450 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)
}


标签:

相关文章

Uniapp开发小程序内的图片扫码

在使用uniapp开发的小程序内,打开图片,长按没有弹出菜单,无法扫码,此时只需在图片上加入show-menu-by-longpress即可完整代码:<image :src="picture" mode=&qu...

Jquery滚动到指定位置的方法

众所周知,Html可以利用锚点,即<a name的属性来快速定位网页位置,但是那个方法点一下网页直接就跳过去了,用户体验度不是很好。怎么实现网页可以平滑丝滑的滚动到网页指定位置呢?其实很简单,用jquery的animate方法即可...

Python中md5转16进制的方法

在Python中,如果要把md5值,转换为16进制,可以使用hashlib库的hexdigest方法。具体代码为:from hashlib import md5 secret = '123456789' print(md...

织梦dedecms防止木马漏洞的方法

织梦dedecms,很多站长起初建设网站都是织梦dedecms。因为程序非常符合seo优化,但是随着用的人越来越多,特别是一些精通织梦的人就想着搞一搞别人用织梦做的站,所以织梦出现了很多安全漏洞问题,该如何设置网站安全防护呢?

推荐文章

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

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

PDF和图片怎么添加水印

pdf添加水印,可以使用专业的pdf工具,如Adobe Acrobat、福昕PDF阅读器等,支持文字和图片形式的添加水印,支持透明度设置、水印位置设置等。图片添加水印,可以使用photoshop软件,但是photoshop太大了,而且使用起...

Tortoise Svn出现No Path ...

在日常开发过程中,突然发现svn无法提交和更新,出现“no path or pathfile specified on the command line”的错误,网上搜了一圈百度 google 以及stack overflow都没找到真正能...

BT宝塔升级方法

由老版本7.2自动升级时,会出现很多问题,建议在终端手动升级。升级命令:curl http://download.bt.cn/install/update_panel.sh|bash