r - 如何从嵌套列表中提取单词对
问题描述
我有一个数据框,其中有一列包含句子列表(嵌套列表)
目标
其中一些句子包含我拥有的一个参考列表中的单词,一些来自第二个列表,还有一些来自两者。我想从每个句子中的两个单词列表中提取所有单词,如果它们都出现在每个句子中,则将它们加入。
例子
ReportText1<-list(c("4 oesophagus biopsies.","Three EMRs seen"))
ReportText2<-list("stomach EMRx1")
ReportText3<-list("stomach biopsy seen pinned on cork","three biopsies")
ReportText<-c(ReportText1, ReportText2,ReportText3)
ReportID Report_Text
1 [1] 4 oesophagus biopsies.
[2] Three EMRs seen
2 [1] stomach EMRx1
3 [1] stomach biopsy seen pinned on cork
[2] three biopsies
期望的输出
ReportID Report_Text Output
1 [1] 4 oesophagus biopsies. oesophagus:biopsies,EMR:
[2] Three EMRs seen
2 [1] stomach EMRx1 stomach:EMR
3 [1] stomach biopsy seen pinned on cork stomach:biopsy,biopsies:
[2] three biopsies
我正在使用的列表:
获取样本类型(即活检或 EMR 等)。
HistolType <- function() {
#First standardise the terms
tofind <-
paste(
c(
"Resection","Biopsy","EMR","ESD","bx","biopsy","biopsies"),
collapse = "|"
)
return(tofind)
}
获取标本的位置
LocationList<-function(){
tofind <-
paste(
c(
"Stomach","Antrum","Duodenum","Oesophagus","GOJ"
),
collapse = "|"
)
return(tofind)
}
试图
我假设该方法应该是使用嵌套lapply
但我似乎无法在嵌套中应用提取lapply
。内部lapply
似乎没有单独遍历每个句子并连接每个句子,它只在末尾连接
lapply(SelfOGD_Dunn2$Macroscopy, function (x)
lapply(x, function(y) paste(
str_extract_all(tolower(y),tolower(LocationList())),":",
str_extract_all(tolower(y),tolower(HistolType())))))
实际输出
ReportID Report_Text Output
1 [1] 4 oesophagus biopsies. "c(\"oesophagus\" : c(\"EMR\", \"bx\")"
[2] Three EMRs seen
2 [1] stomach EMRx1 stomach : EMR
3 [1] stomach biopsy seen pinned on cork "c(\"stomach\" : c(\"biopsy\", \"biopsies\")"
[2] three biopsies
我想另一种方法是分别提取每个列表以及找到该单词的句子的索引,然后根据索引合并?如果有人知道如何做到这一点,我很想知道。
解决方案
使用嵌套lapply
,您需要collapse
从内部列表中输出列表项:
lapply(ReportText, function (x)
paste( lapply(x, function(y)
paste(
str_extract_all(tolower(y),tolower(LocationList()), simplify = T),":",
str_extract_all(tolower(y),tolower(HistolType()), simplify = T))
),
collapse = ","
)
)
#[[1]]
#[1] "oesophagus : biopsies, : emr"
#
#[[2]]
#[1] "stomach : emr"
#
#[[3]]
#[1] "stomach : biopsy"
#
#[[4]]
#[1] " : biopsies"
推荐阅读
- python - 离线更新python库
- xamarin.forms - Xamarin 表单获取列表项计数,其中属性选择为 true
- python - 提取文本然后保存到纯文本文件 - TypeError:需要一个整数(获取类型 str)
- php - Paypal 发送发货国家(使用不同的值 lc 和国家字段)
- php - 复制 .env 文件后无法生成 php artisan 密钥
- angular - 不能连续两次将相同的文件添加到数组中(文件上传表单)
- laravel - 购买一年后如何查看优惠券是否过期?
- flutter - Flutter:未处理的异常:在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger
- jquery - 使用 jquery validate plugin 验证选择的插件下拉列表
- php - 从 localhost 数据库插入查询可能会出现什么问题?