0

我正在尝试使用textreadr导入采访转录,但它通过定位分隔符(通常是冒号)将文本分成两列来工作。在转录中,我有时会在响应文本的正文中出现一个冒号,这会导致错误。我希望用其他东西(例如破折号或下划线)替换这些冒号,但不知道如何去做。

我可以通过gregexpr() 找到所有冒号的位置,但是如何替换它们呢?我可以通过 if 语句以某种方式使用 grep 或 sub 吗?

编辑

Ok 通过 stringr 包找到了一个不合理的解决方案:

首先,我通过替换所有冒号

dat = str_replace_all(text,":","_")

然后我只重新插入我想保留的第一个冒号

dat = str_replace(dat,"_",":")

不是很好,但它工作....

4

1 回答 1

0

您可以使用 strsplit ,然后在第一个元素之后组合所有元素。就像是:

txn <- c("Int1: This is some text.",
         "Int2: As I speak I take a long pause: for effect",
         "Int1: This inteview is over.")               

transcripts <- strsplit(txn, ":")
interviewer <- sapply(transcripts, "[", 1)
scripts <- sapply(transcripts, function(x) paste(x[-1], collapse = ":"))
dat <- data.frame(interviewer, scripts)
于 2017-02-08T15:35:51.353 回答