R strsplit 忽略一些文本

标签 r strsplit ignore

我正在开展一项调查,答案中的许多书面类别均以逗号分隔。我已经成功地使用 gsub 来分离它们,就像这样。

sss6 <- str_trim(unlist(strsplit(aiprm$step_do_you_anticipate, split=",")))

我已经成功地分离了这样的字符串,因此我可以正确地计算它们,以便进行可视化。

语法,以上都不是,语法,主题专业知识,语法,主题专业知识,偏见,语法,主题专业知识,偏见,事实检查

现在的问题是我的文本里面有括号和逗号,我希望括号“()”内的逗号被忽略。以下是一些例子。

广告文案、JavaScript 代码、标题、引人注目的文案、商业创意、广告文案、标题和元描述、创意生成(主题、标题)、代码、创意生成(主题、标题)、广告文案、创意一代(主题、头条新闻)

有什么方法可以告诉 strsplit() 函数不要分隔或忽略括号内的逗号吗?主要问题是(主题、标题)

谢谢!

最佳答案

可怕(而且非常慢)的解决方案:

chrs        <- strsplit(s, "")[[1]]
commas      <- as.integer(chrs == ",")
parenthesis <- cumsum(chrs == "(" | chrs == ")")
ind         <- which((commas == 1) & (parenthesis %% 2 == 0))

sapply(seq_along(ind), function(i) {
  start <- ifelse(i == 1, 1, ind[i - 1] + 2)
  end   <- ind[i] - 1
  paste(chrs[start:end], collapse = "")
})

最好的方法可能是使用正则表达式。请参阅this thread .

关于R strsplit 忽略一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77011474/

相关文章:

使用环境变量重命名带有 tidyverse 的列

r - 如何将 R 数据框中的行转换为列?

ruby - Heroku Rails 应用程序的数据挖掘/统计分析选项?

html - 如何通过 html 标签或正则表达式拆分文本文件,以便将其另存为 R 中的单独文本文件?

git - 忽略 git 子模块的新提交

svn - Subversion 中的忽略文件从 svn :ignore property 中删除旧值

linux - 将当前项目添加到 SVN 但忽略某些文件类型

R:unequi join 与合并功能

r - 如何删除R中数据帧列中的部分字符串?

R - 使用 stringr::str_split 合并两个列表中的唯一值