我正在尝试使用textreadr导入面试转录,但它的工作原理是通过查找分隔符(通常是冒号)将文本分成两列。在转录中,我偶尔会在响应文本的正文中出现冒号,这会导致错误。我希望用其他东西替换这些冒号(例如破折号或下划线),但不知道如何解决这个问题。
我可以通过gregexpr()找到所有冒号的位置,但是我怎样才能替换它们?我能通过if语句以某种方式使用grep或sub吗?
修改
通过stringr包找到了一个不合理的解决方案:
首先我通过
替换所有冒号dat = str_replace_all(text,":","_")
然后我重新插入了我想要保留的第一个冒号
dat = str_replace(dat,"_",":")
不太好,但它有效......
答案 0 :(得分: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)