获取字符串向量元素之间的最小共享部分

  发布于 2023-02-07 10:45

有一个字符串向量列表:

xx <- c("concord wanderer basic set air snug beige",
  "concord wanderer basic set air snug black noir", 
  "concord wanderer basic set air snug blue bleu", 
  "concord wanderer basic set air snug brown marron", 
  "concord wanderer basic set air snug green vert", 
   "concord wanderer basic set air snug grey gris", 
   "concord wanderer basic set air snug red rouge", 
   "concord wanderer basic set air snug rose" )

我试图在向量的元素之间获得最小的共享部分,例如,在这里我应该得到:

"concord wanderer basic set air snug"

xx是前一个过程的结果,所以我确信元素之间存在共享部分.但被删除的部分并不总是在他的结尾.

使用strsplit`table我得到这个部分解决方案,但它有点棘手,我放松了原始的单词顺序:

table_x <- table(unlist(strsplit(xx,' ')))
paste(names(table_x[table_x==max(table_x)]),collapse=' ')
[1] "air basic concord set snug wanderer"

我很确定有更好的解决方案.我试着用agrepadist但没有很多成功的.

1 个回答
  • 您可以使用intersectwith Reduce来获得所需的输出.

    paste(Reduce(intersect, strsplit(xx, " ")), collapse=" ")
    #[1] "concord wanderer basic set air snug"
    

    2023-02-07 10:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有