r - 如何使用 parLapply 加快读取多个 R 对象的速度?
问题描述
我有很多大列表(不幸的是当时)保存为.RData
文件。保存时所有文件都具有相同的名称。因此,在读入文件后,我想为它们分配一个新名称。我想加快这个过程并考虑并行计算。我的尝试是(假设文件名仅与其名称的最后一个字符不同):
require(parallel)
myReadin <- function (x) {
# Lets assume all lists were named myList when saving them and are hence returned with that name
load(paste0('myFolder/list', x, '.RData'))
assign(paste0('myList', x), myList, envir = .GlobalEnv)
}
cl <- makeCluster(getOption("cl.cores", detectCores()))
call.function <- parLapply(cl, 1:50, myReadin)
这通常有效。但是,在读取文件时,我的计算机 CPU 并未达到极限,但计算机似乎只使用一个内核。此外,仅返回一个包含 50 个不同列表的列表,但在全局环境中call.function
没有 50 个单个列表 ( )。myList1, ..., myList50
有没有办法使用我所有的核心来读取不同的文件并将它们全部作为全局环境中的单个列表?
解决方案
推荐阅读
- python - 如何从 JSON 文件中提取数据
- gitlab - Gitlab-CI 和管道:如何基于合并的分支事件触发管道?
- c# - 当验证在 ASP.net MVC 中可见时使标签可见
- excel - 如何计算来自 VLOOKUP 功能的某些文本?
- javascript - 如何使 Telegram BOT 回复特定消息?
- node.js - 如何使用 NodeJS 解码来自 modbus 的有效负载?
- msbuild - 包装参考条件 - 排除某些项目
- azure-data-factory - 我们可以在 Azure 数据工厂 v2 (ADFv2) 复制活动中使用不同的运行时吗?
- python - Python for循环中求和运算时的语法错误
- excel - 导出的日期格式在 Excel 中无法识别为日期(Angular)