问题标签 [stringi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
92 浏览

regex - 之后如何找到带有逗号和零的整数(正则表达式)?

我尝试创建正则表达式来提取所有整数。提取非整数的实数可以是6 -12bur also+6.000-5,0and onother ,例如3.14, -6,26but no 5.0

为了查找整数,我尝试过"^[+-]?([0-9]+)(\\[.,]0{1,})?$",但它不适用于-6.00. 而且我不知道如何创建第二个正则表达式(如何排除带有逗号或点的整数,然后是零)。任何帮助表示赞赏。

0 投票
1 回答
1100 浏览

regex - gsub 速度与图案长度

我最近一直在gsub广泛使用,我注意到短模式比长模式运行得更快,这并不奇怪。这是一个完全可重现的代码:

如您所见,我正在寻找包含a重复rpt[n]时间的模式。正如预期的那样,斜率为正。但是,我注意到 300 个字符fixed=T和 600 个字符出现扭结,fixed=F然后斜率似乎与以前大致相同(见下图)。我想,这是由于内存、对象大小等原因。我还注意到允许的最长pattern符号是 1463 个符号,对象大小为 1552 字节。

有人可以更好地解释这个扭结,为什么要 300 和 600 个字符?

gsub 速度(以毫秒为单位),固定打开/关闭,作为字符模式长度的函数

补充:值得一提的是,我的大多数模式都是 5-10 个字符长,这为我的真实数据(不是inp上面示例中的模型)提供了以下时间。

(我有 4k 模式,所以我的模块的总时间大约是 200 秒,这恰好是 0.05 x 4000 与 gsub 和固定 = TRUE。这是我的数据和模式最快的方法)

真实数据时序

0 投票
6 回答
11503 浏览

r - 如何从存档安装 stringi 库并安装本地 icu52l.zip

我们正在努力让一些 R 代码在生产环境中工作,作为其中的一部分,我们正在安装一些 R 包,如下所示:

这可能不是安装 R 包的最优雅的方式,但对我们来说似乎没问题(任何其他关于 R 包管理的技巧都会受到欢迎,但在这个阶段有点晚了:)。

但是,stringi 包似乎依赖于 icu52l 包,它通过网络安装:

我们如何告诉它寻找本地副本?输出很容易包含远程位置(http://static.rexamine.com/packages/icudt52l.zip),所以我们可以自己把它放在某个地方,但不确定在哪里。

也许我们正在以完全错误的方式解决这个问题,但欢迎任何帮助或指示。

我们在 ubuntu 机器上,也尝试过安装 libicu42 和 libicu-dev,但这些似乎都没有帮助。

0 投票
1 回答
499 浏览

r - stri_split_fixed 在 R 中的 data.table 中

我有一个 data.tableDT如下。

我正在尝试将列拆分V2为“<<”并在两个新列中获取输出。

我可以使用以下方法完成它stringi

但是,我想使用:=运算符通过引用来做同样的事情。如何使用 data.table 做到这一点?

我对 RHS 部分有困难。

stri_split_fixed(DT$V2, "<<", 2)给出长度为 2 的字符向量的 3 列表。如何获得长度为 3 的字符向量的 2 列表?

0 投票
2 回答
1166 浏览

r - 根据字典中单词的值检索句子分数

编辑 dfdict

我有一个包含句子的数据框:

还有一个包含单词及其相应分数的字典:

我想附加一个“分数”列df,将每个句子的分数相加:

预期成绩

更新

以下是迄今为止的结果:

阿克伦的方法

建议一

请注意,要使此方法起作用,我必须使用data_frame()创建dfdict不是data.frame()否则我得到:Error in strsplit(text, " ") : non-character argument

这不考虑单个字符串中的多个匹配项。接近预期的结果,但还没有完全达到。

建议二

我在评论中对 akrun 的建议进行了一些调整,以将其应用于已编辑的帖子

这不考虑字符串中的多个匹配项:

理查德斯克里文的方法

建议一

更新所有软件包后,现在可以使用(尽管它不考虑多个匹配项)

建议二

这给出了相同的结果:

建议 3

这实际上有效:

Thelatemail的方法

请注意,我添加了该cbind()部分。这实际上符合预期的结果。

最终答案

受 akrun 建议的启发,这是我最终写的最典型的dplyr解决方案:

尽管我会执行 Richard Scriven 的建议 #3,因为它是最有效的。

基准

以下是适用于更大数据集(df93 个句子和dict14K 单词)的建议microbenchmark()

结果:

在此处输入图像描述

0 投票
1 回答
951 浏览

regex - 如何在R中字符向量的每个元素中用点替换破折号?

有没有一种简单的方法可以用 R 中字符向量的每个元素中的点替换破折号?

正在寻找stringi包裹中的帮助,但找不到答案。有stri_substitute功能,但不知道怎么用。

0 投票
2 回答
69 浏览

regex - 使用哪个正则表达式在 R 中的 stri_regex 中提取适当的信息?

我正在尝试gdac.broadinstitute.org_在 R 中的该字符中提取该单词之后的名称

stri_extractstringi包中使用,但看起来我对正则表达式不太了解。我试过这样的事情:

任何人都可以帮忙吗?

0 投票
1 回答
100 浏览

r - 在R中根据“^”拆分字符串

我需要拆分并获取之前的所有字符^

示例:我在数据框中有一列读取

并且同一数据框中的结果列应为:

我尝试使用stringr, strsub{base}, stringi, gsubfn. 但他们抛出了奇怪的结果,因为^. 我无法更换^,因为这张桌子实在是太大了。

0 投票
2 回答
412 浏览

r - 使用 stringi 和 gsub 的不同输出(在同一字符串上使用相同的模式)

我想知道为什么我使用 gsub 和 stringi 获得两个不同的输出字符串。元字符是否“。” 在 stringi 中不包括新行?stringi 是否读取“逐行”?

顺便说一句,我没有找到用 stringi 执行“正确”替换的任何方法,所以我需要在这里使用 gsub。

0 投票
1 回答
327 浏览

r - R中dplyr包中变异函数的奇怪行为

我正在制作一个有尺寸的集合

第二列看起来或多或少像这样:

对于每一行,我想从topics列中选择:符号后等级最高的单词。我尝试使用dplyr包中的 mutate 函数,它看起来好像不起作用。stringi使用更快版本的包制作的字符上的操作stringr。我的代码和此操作的结果如下。任何人都知道为什么我在此操作后的每一行中都得到相同的值,以及如何在不使用for循环的情况下达到预期的结果?

我添加nr了作为行号的额外列,然后我愚蠢地group_by编辑了该列和summarised 而不是mutate并实现了我想要的......但我并不为我的代码感到自豪。还有其他想法吗?

样本数据