r - rbind.fill 基于通用模式 R
问题描述
我在 R 中有很多以以下格式编写的文本文件:
building_000000.txt
building_window_roof_000123.txt
building_window_roof_000126.txt
...
我使用此命令列出的
files_list <- list.files(pattern="txt")
我想要做的是使用 mget(ls) 将具有此模式“building_roof_window_\\\\\d+”的所有文件(数据帧)绑定到单个 .txt 文件中。我还想使用“rbind.fill”,因为并非所有数据帧都具有相同的列数。所以这就是我试图做的:
building_roof_window <- do.call("rbind.fill", mget(ls(pattern="^building[_]roof[_]window[_]\\\\\\d+")))
但结果是一个空的数据框。我错过了什么?可能是由于对正则表达式的草率使用吗?
解决方案
主要任务是使用正确的正则表达式选择文件名。我们可以使用如下的正则表达式:
files_list <- list.files(pattern= 'building_roof_window_\\d+.*\\.txt$')
building_roof_window <- do.call(plyr::rbind.fill, mget(files_list))
推荐阅读
- linux - 非抢占式调度如何处理硬件中断?
- google-sheets - Google Docs 脚本 - 自动日历 - 本周和另外 3 个
- r - dplyr 过滤器在未指定时删除 NA
- product - 如何在产品名称中添加产品类别?
- javascript - 我可以在 Angular 9 中选择一个在运行时加载的模块吗?
- go - 使用 ssh 将带有标志的本地脚本运行到远程机器
- python - 如何使用 pool.starmap 在某些进程上重复带有一些参数的函数
- django - Django:无法在 DRF RetrieveUpdateDestroyAPIView 中获取当前登录用户
- javascript - 如何在 EJS 中呈现列表?
- python - 是否可以使用 numpy 避免此循环?