首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高R中嵌套循环的计算速度

提高R中嵌套循环的计算速度
EN

Stack Overflow用户
提问于 2021-05-10 04:58:26
回答 1查看 29关注 0票数 0

我有一个循环,我试图尽可能多地改进,可悲的是,我不知道如何让它变得更好。

你有什么改进的想法吗?

代码语言:javascript
复制
#partial is a data frame that look like this
partial = data.frame(
partial.regex = c("european construction industry federation",
" zentralverband des deutschen baugewerbes",
"hauptverband der deutschen bauindustrie",
"1 1 drillisch ag 439568220616 04"))

> summary(partial)
 partial.name          regex            full.name        
 Length:13202       Length:13202       Length:13202      
 Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character

#full is also a df
full = data.frame(
full.name = c("International Lead Association (ILA)", "Airborne Wind Europe", "Sazka Group a.s",
regex = c("international lead association (ila)", "airborne wind europe", "sazka group a.s.")
> summary(full)
  full.name            regex          
 Length:9779        Length:9779       
 Class :character   Class :character  
 Mode  :character   Mode  :character  

然后循环就来了。抱歉,如果这是愚蠢的,我是一个真正的初学者!

代码语言:javascript
复制
for(y in 1:dim(partial)[1]){
  a = 0
  b = ""
  for(i in 1:dim(full)[1]){
    
    vec = c(partial$regex[y], full$regex[i])

  

if(length(Reduce(`intersect`,stri_extract_all_regex(vec,"\\w+"))) > a){
      a = length(Reduce(`intersect`,stri_extract_all_regex(vec,"\\w+")))
      partial$full[y] = full$full.name[i]
    }
    
  }
}

提前感谢您给我的所有帮助!

诚挚的问候,

PS : partial.csv = https://github.com/JMcrocs/MeetingMEPs/blob/main/partial.csv

full.csv = https://github.com/JMcrocs/MeetingMEPs/blob/main/full.csv

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-10 06:22:53

这是一个使用外部+max.col`的基本R选项

代码语言:javascript
复制
partial$full <- full$full.name[
  max.col(
    lengths(outer(
      regmatches(partial$partial.regex, gregexpr("\\w+", partial$partial.regex)),
      regmatches(full$regex, gregexpr("\\w+", full$regex)),
      FUN = Vectorize(intersect)
    )),
    ties.method = "first"
  )
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67462258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档