gpt4 book ai didi

r - 提取R中每个单词的第一个字母

转载 作者:行者123 更新时间:2023-12-02 05:47:20 25 4
gpt4 key购买 nike

我有一个包含一些分类变量的 data.frame。假设 sentences是这些变量之一:

sentences <- c("Direito à participação e ao controle social",
"Direito a ser ouvido pelo governo e representantes",
"Direito aos serviços públicos",
"Direito de acesso à informação")

对于每个值,我只想提取每个单词的第一个字母,忽略单词是否有 4 个或更少的字母(e、de、à、a、aos、ser、pelo),我的目标是创建首字母缩略词变量。我希望得到以下结果:
[1] "DPCS", "DOGR", "DSP", "DAI

我尝试使用 stringr 制作模式子集建立了正则表达式模式 here :
library(stringr)
pattern <- "^(\b[A-Z]\w*\s*)+$"
str_subset(str_to_upper(sentences), pattern)

但是我在创建 pattern 时出错了目的:
Error: '\w'  is an escape sequence not recognized in the string beginning with ""^(\b[A-Z]\w"

我究竟做错了什么?

在此先感谢您的帮助。

最佳答案

您可以使用 gsub删除所有不需要的字符并保留您想要的字符。从预期的输出来看,您似乎仍在使用长度为 3 个字符的单词中的字符:

 gsub('\\b(\\pL)\\pL{2,}|.','\\U\\1',sentences,perl = TRUE)
[1] "DPCS" "DSOPGR" "DASP" "DAI"

但是,如果我们忽略您指出的词,那么它将是:
gsub('\\b(\\pL)\\pL{4,}|.','\\U\\1',sentences,perl = TRUE)
[1] "DPCS" "DOGR" "DSP" "DAI"

关于r - 提取R中每个单词的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com