r - 在通话记录中连接多个字符串
问题描述
我有一个数据集,看起来像以下一千行:
dat = c("Speaker 1: ONE TWO THREE | Speaker 2: FOUR FIVE SIX SEVEN | Speaker 1: EIGHT NINE TEN | Speaker 2: ELEVEN* TWELVE THIRTEEN | Speaker 1: FOURTEEN FIFTEEN","Speaker 1: ONE TWO")
dat = tolower(dat) #lowercase
dat = gsub("\\*","",dat) #strip asterisks
我试图让它看起来像下面这样:
dat[1]:
Four five six seven. Eleven twelve thirteen.
dat[2]:
NA #(or blank)
也就是说,我想从 Speaker 1 中删除任何内容,删除星号,将剩下的内容更改为句子大小写,并在每个语句的末尾加上句号。
感谢您提供任何帮助,特别是如果这里存在此解决方案而我找不到它。
解决方案
使用基础 R 你可以这样做:
a = gsub(".*?2:\\s*([^|]*)\\b|(?:(?!Speaker 2).)*","\\L\\1. ", dat, perl = T)
b = gsub("\\*", "", sub("(?|(?<=^)|(?<=\\W))\\W*$", '', a, perl = T))
`is.na<-`(b,nchar(b)==0)
[1] "four five six seven. eleven twelve thirteen."
[2] NA
推荐阅读
- c# - 列表框未在 WPF 应用程序中排序
- javascript - 如何更改此代码的背景颜色
- matlab - 如何绘制迭代方法的收敛速度?
- html - 淘汰赛css绑定没有分配任何类
- python - 如何在我的 Django Rest Framework API 中包含中间模型
- r - 从具有重复项的数据创建组,以便每个组都有一个重复项表示一次
- python - sklearn 中的 normalized_mutual_info_score 给出负值或大于 1 的值
- ios - 在我的字符串末尾附加一个字符后,会添加一个不需要的空格。我该如何删除这个?
- java - RecyclerView 列表项不响应事件
- android - Android Firebase Firestore 无法反序列化抽象类