我试图用textreadr导入面试转录,但它的工作原理是通过定位分隔符(通常是冒号)将文本分隔成两列。在转录中,我偶尔会在响应文本的正文中出现一个冒号,这会导致错误。我希望用其他东西(例如破折号或下划线)来代替这些冒号,但不知道该怎么做。
我可以通过gregrexpr()找到所有冒号的位置,但如何替换它们?我能通过if语句以某种方式使用grep或sub吗?
编辑
Ok通过字符串包找到了一个不合适的解决方案:
首先,我通过替换所有冒号
dat = str_replace_all(text,":","_")
然后我只插入我想通过保留的第一个冒号
dat = str_replace(dat,"_",":")
不太好,但它奏效了。。。。
您可以使用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)