gpt4 book ai didi

r - 将项目符号点和文本拆分为 R 中的单独行

转载 作者:行者123 更新时间:2023-12-04 11:00:03 25 4
gpt4 key购买 nike

我想将我当前在一行中的要点拆分为多行。

“• xxxx • xxx”应该是

“• xxxx”
“• xxx”

我试过例如unlist(str_split(df$x, "\\•")) 但无济于事。

关于如何在 R 中使用项目符号有什么想法吗?

最佳答案

library(stringr); 

vals <- "• xxxx • xxx";
print(vals)

它将返回八进制转义序列为:

[1] "\342\200\242 xxxx \342\200\242 xxx"

现在,我们必须编写一个可以找到这些八进制转义序列的正则表达式。为此,我首先更改编码如下

Encoding(vals)<- "UTF-8"

打印时会给出如下值:

[1] "<U+2022> xxxx <U+2022> xxx"

如果你快速谷歌搜索,你会发现它是一个bullet

现在,我们可以为这个 utf-8 编码的字符串编写一个正则表达式,并按照问题中提供的规则进行拆分,如下所示:

df <- setNames(data.frame(cbind(unlist(str_extract_all(vals,"([\U{2022}])\\s\\w+" )))),"X");

输出:

> df
X
1 <U+2022> xxxx
2 <U+2022> xxx

不足为奇,但是这里看不到子弹,因为用当前本地设置打印子弹符号所以我做的是,在这里更改本地设置(请谨慎):

oldloc <- Sys.getlocale("LC_CTYPE")
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")
print(df$X)

结果是这样的:

> print(df)
X
1 • xxxx
2 • xxx

考虑到以上所有内容,我可以说这可能仍然不适用于 Windows 机器,但它应该适用于 Mac High Sierra。

为了使用 Windows,我使用了:

library(stringi)
stringi::stri_trans_general(x, "zh")

输出:

stringi::stri_trans_general(df$X, "zh")
[1] "• xxxx" "• xxx"

引用截图:

enter image description here

关于r - 将项目符号点和文本拆分为 R 中的单独行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47733181/

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