删除字符并组合字符串

时间:2017-09-26 11:48:15

标签: r dplyr tidytext

我正在转换正在从pdf文件中读取的文本。

特别是,我有一个字符向量,其中包含连字符(“ - ”),用于预先形成音节,或将单词分隔为新行,但仅在数字出现时 。例如:

text text text 123-
456 text text..

我想要做的事情是删除所有的大肆宣传并粘贴这些词语。

text text text 123456 
text text..

我的开始尝试:

library(pdftools)
library(tidytext)
library(readxl)
library(dplyr)
setwd("~/Automation - Official Guazzete")
path <- getwd()
pdf_file <- file.path(path, "stecajni_postapki.pdf")

test <- pdf_text(pdf_file)

dput(tail(test)[1])
"10 јули 2017                                                     Бр. 86 - Стр. 1\r\n             Стечајни постапки\r\n                                  СТЕЧАЈНИ ПОСТАПКИ\r\n                           Основниот суд Скопје II – Скопје преку стечајниот\r\n                       судија Вероника Станојевска и привремениот стечаен\r\n                       управник Ѓорѓе Костов, објавува дека со Решение 2\r\n                       Ст. бр. 841/17 од 16.6.2017 година, се отвора стечајна\r\n                       постапка над должникот Друштво за производство, тр-\r\n                       говија КБ ТРЕЈД Ќиро ДООЕЛ Скопје, со трансакцис-\r\n                       ка сметка 300000000744414 при Комерцијална банка\r\n                       АД Скопје со ЕДБ 403099419454 Скопје, ЕМБС\r\n                       4854217 и единствен даночен број 4030003477097 и\r\n                       приоритетна дејност на мало во неспецијализирани про-\r\n                       давници претежно со храна и пијалаци... <truncated>

从这里开始,我试过了:

test <- gsub("-", "", test)

但这会返回单独的数字。例如

  1. 123 2. 456
  2. 不是一个字--123456。

    有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果您在gsub中包含\n字符,则应该执行此操作

S <- "text text text 123-
      456 text text"
"text text text 123-\n456 text text"

gsub("-\n", "", S)
# "text text text 123456 text text"

答案 1 :(得分:0)

这种轻微的变化可能会解决您的问题。它会找到连字符后跟换行符并将其折叠的实例。

test <- gsub("-\\n+", "", test)

如果不这样做,你可能会定义一个函数,用自身和元素[i + 1]替换包含“ - ”的元素[i],然后用NA或一些占位符替换元素[i + 1],删除后面。