如何加快 R 中的文本搜索速度?

2023-11-26

我有一个很大的文本向量,我想搜索特定的字符或短语。正则表达式需要很长时间。怎样才能快速搜索到呢?

样本数据:

R <- 10^7
garbage <- replicate( R, paste0(sample(c(letters[1:5]," "),10,replace=TRUE),collapse="") )

如果确实需要正则表达式,通常可以通过使用 PCRE 库(通过设置perl=TRUE)。还有其他性能提示?grep:

性能考虑:

如果您正在进行大量正则表达式匹配,包括 非常长的字符串,您需要考虑使用的选项。 一般来说 PCRE 会比默认的正则表达式更快 引擎,并且“fixed = TRUE”更快(特别是当每个模式 仅匹配几次)。

如果您在单字节语言环境中工作并标记了 UTF-8 在该语言环境中可表示的字符串,首先将它们转换为 仅一个 UTF-8 字符串将强制所有匹配在 Unicode,默认 POSIX 的惩罚大约是 3 倍 1003.2 模式。

如果您可以使用“useBytes = TRUE”,则字符串将不会 匹配前检查一下,实际匹配会更快。经常 基于字节的匹配在 UTF-8 语言环境中就足够了,因为字节模式 一个字符永远不会匹配另一个字符的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何加快 R 中的文本搜索速度? 的相关文章

随机推荐

  • 全屏视频切换 HTML

    HTML 5 中的视频标签确实令人着迷 我需要知道是否可以让用户切换全屏播放 我不想使用任何其他视频插件 我只需要使用视频标签 那么这可能吗 请帮帮我 您可以使用以下代码创建一个按钮 使视频进入全屏模式 JavaScript 代码
  • GC.SuppressFinalize 是否有保证?

    我在实践中的观察是GC SuppressFinalize并不总是抑制对终结器的调用 尽管如此 终结器仍可能被调用 因此我想知道是否GC SuppressFinalize具有以下性质request而不是一个保证通过系统 更多信息 如果需要 以
  • 如果间接调用sied方法则不会调用Sinon Spy

    Problem 在我们的代码库中 我们遇到了 sinon 的问题 可以使用下面的代码片段来重现该问题 问题是 这似乎是间接的所谓间谍还击力量false the console log明确指出该方法被调用 但spy called遗迹false
  • Jython 不会导入用户定义的类;导入错误:没有名为 ****** 的模块

    这几天我一直在用头撞墙 试图解决这个问题 我已经开始使用 Jython 进行快速原型设计 我遇到了一个看似非常基本的问题 但我似乎无法克服它 我是在JythonBook 的第 10 章当我尝试编写和使用 Beach 类时遇到了问题 从标记为
  • 通过文本转语音朗读时暂停电话铃声,然后恢复

    我正在制作一个来电者语音应用程序 它使用 TTS 说出来电者姓名 我想在 TTS 说话时暂停铃声 然后恢复铃声 根据我的研究 我们可以使用AudioFocus 希望如此 无论如何我正在使用以下代码 Update 我现在正在使用这段代码 pu
  • Java:如何将java.util.logging的语言更改为英语?

    我有 java util logging 将输出打印到文件 效果很好 然而 这些消息包含对应于日志级别以及记录消息的时间 如何让它打印英文而不是中文 这就是当前消息的样子 11月 08 2016 8 28 03 下午 mySamples t
  • 取消 Afnetworking 2.0 中的 Post 请求

    您好 我正在使用 AFnetworking 2 0 发出发布请求 我的请求看起来像这样 AFHTTPRequestOperationManager manager AFHTTPRequestOperationManager manager
  • 无法打开另一个 Excel 文件(当通过 .net 打开一个 Excel 时)

    我设计了一个 net 应用程序 它将在登录时打开 Excel 文件并用它来打印报告 当用户注销时它将被关闭 我将 Excel 文件的可见设置为 false 以便用户不知道后台进程 但是 如果任何人在此期间打开任何其他 Excel 文件 我的
  • 有没有办法使用javascript检测网络连接类型? [复制]

    这个问题在这里已经有答案了 我想知道是否有任何方法可以检查用户是否使用 javascript 从 2G 3G 4G 或 WiFi 连接 据我所知 只有 Mozilla 提供了网络信息 API 它有助于检测一般连接类型 如 wifi 蜂窝 等
  • 如何在 Caliburn.Micro 中绑定按键手势?

    如何让 Caliburn Micro 将按键手势映射到 ViewModel 上的操作方法 例如 我想实现一个选项卡式界面 并且希望我的 ShellViewModel 有一个 NewTab 方法 用户应该能够通过按键盘上的 Ctrl T 来调
  • 如何通过我的网站分享 Facebook 活动?

    我想在我的网站上分享活动 有按钮 喜欢它 但没有像 加入活动 这样的按钮 有任何想法吗 None
  • 如何使用C++流优雅地读取整数?

    我有一个充满以下格式行的文件 1 2 3 我只想使用 C 流加载数字 最优雅的方法是什么 我只考虑了 cin get 并检查每个字符是否是数字 我认为这将是最快但又优雅的方式 int a b c scanf d d d a b c
  • “成功但有错误”的 HTTP 状态代码?

    我查了一下 但没有看到请求成功时的 HTTP 状态代码 但在 不返回点 之后出现错误 例如 假设您处理一个请求 将其提交给数据库 但是在返回结果时您耗尽了内存 或者遇到了 NPE 或者发生了什么 它would曾经是200响应 但现在 在内部
  • iOS 7 的持久 UDID 等效项? [复制]

    这个问题在这里已经有答案了 首先我想说我完全清楚uniqueIdentifier已被弃用 并且有identifierForVendor advertisingIdentifier 我的问题是 是否有办法完全持久设备标识符在重启 应用程序卸载
  • 我有一个可执行文件的核心转储,该可执行文件不是使用调试符号构建的。我可以恢复 argv 内容吗?

    我有一个可执行文件的核心转储 该可执行文件不是使用调试符号构建的 我可以恢复 argv 内容以查看命令行是什么吗 如果我运行 gdb 我可以看到回溯 并且可以导航到 main 框架 一旦到达那里 有没有办法在不知道其确切地址的情况下恢复 a
  • Boost单元测试主要功能?

    我该如何定义自己main 使用 boost 进行测试时的功能 Boost 使用它自己的 main 函数 但我使用自定义内存管理器 并且需要在分配任何内存之前对其进行初始化 否则我会收到错误 我不相信你真的需要你自己的主要 我认为你的情况要好
  • 如何从 Homebrew 重新安装 python@2?

    我在使用 openssl 和 python 2 时遇到了问题 这里已经解释了 未解决 记录的重新安装 Python 和 openssl 的解决方法不起作用 因此我决定卸载并重新安装 Python 问题是 当您尝试使用brew 安装Pytho
  • java Callable FutureTask Excecuter:如何监听已完成的任务

    我对执行者服务很陌生 喜欢自己做所有事情 但我认为是时候信任这些服务了 我想手过去Executer a Runnable 执行器将其包装在一个FutureTask然后把它还给我 现在我称之为民意调查done 方法 但我希望届时得到通知don
  • 如何获取目录中的所有文件并跳过未经授权的文件?

    我需要获取 C 盘中允许的所有文件的列表writing and reading 所以我尝试这样 string files Directory GetFiles C SearchOption AllDirectories foreach st
  • 如何加快 R 中的文本搜索速度?

    我有一个很大的文本向量 我想搜索特定的字符或短语 正则表达式需要很长时间 怎样才能快速搜索到呢 样本数据 R lt 10 7 garbage lt replicate R paste0 sample c letters 1 5 10 rep