r - list.files 考虑到 R 中的列表编号?
问题描述
我有大量文件(> 50,000)要分析。我可以得到这些文件的列表;
myfiles <- list.files(pattern="*output*")
然后循环
for (file in myfiles) {
"code"
}
问题是有时我的系统由于 RAM 过载而死机,所以剩下的唯一选择是终止 rsession 并使用相同的文件再次重新启动循环。如何修改 list.files 调用,以便我只能通过 list.files 选择一定数量的文件,例如 100:200 或 3500:5000。基本上,我想跳过在上次系统冻结之前已经分析过的文件。
任何帮助,将不胜感激。
谢谢。
解决方案
'myfiles' 对象是一个vector
. 因此,我们可以在循环时创建位置序列 ( :
) 来子集对象
for (file in myfiles[100:200]) {
...code...
}
此外,文件可以split
放入一个list
长度为 100 的每个元素
lst1 <- split(myfiles, as.integer(gl(length(myfiles), 100, length(myfiles))))
然后,一个思路是循环进入parallel
或者顺序,remove( rm
)临时对象,调用gc()
释放内存
推荐阅读
- python-3.9 - 如何从pdf文件中提取经验和素质
- javascript - 预取以优化网页速度 (SPA)
- python - FluidSynth() 输出音量太低
- python - 将嵌套列表转换为列表中的字典
- loops - SAS 宏循环使用单引号的多个“yyyy-mm-dd”日期格式
- mysql - 从我的 sql 中具有限制的百万行表中删除查询
- jquery - 服务器端 Jquery 数据表在 laravel (FIxed) 中显示请求的未知参数,但 ssearching 不能按地址名称工作
- ios - 自动布局 - 制作 UITextView,而不是 UIImageView,拉伸容器视图
- networking - 错误“clnt_create:RPC:端口映射器故障 - 无法接收:errno 113(没有到主机的路由)”
- save - 我可以让我的软件在用户计算机中保存一些文件,以便我知道他卸载后已经使用了我的软件吗?