在R中查找索引时不使用`which`
有没有比在%R中搜索%的索引更快的方法 我有一个需要执行的语句,但它需要很多时间 声明:在R中查找索引时不使用`which`,r,R,有没有比在%R中搜索%的索引更快的方法 我有一个需要执行的语句,但它需要很多时间 声明: total_authors<-paper_author$author_id[which(paper_author$paper_id%in%paper_author$paper_id[which(paper_author$author_id%in%data_authors[i])])] total\u作者不要调用哪个。R接受逻辑向量作为索引,因此调用是多余的。 根据sgibb的评论,如果您确定您也将获
total_authors<-paper_author$author_id[which(paper_author$paper_id%in%paper_author$paper_id[which(paper_author$author_id%in%data_authors[i])])]
total\u作者不要调用哪个
。R接受逻辑向量作为索引,因此调用是多余的。
根据sgibb的评论,如果您确定您也将获得至少一个匹配项,您可以保留。(如果没有匹配项,则返回一个空向量,您将得到所有内容,而不是零。请参阅。)
其次,如果将与
一起使用,代码看起来更干净一些
第三,我认为您需要一个带有&
的单索引,而不是双索引
total_authors <- with(
paper_author,
author_id[paper_id %in% paper_id & author_id %in% data_authors[i]
)
total\u作者不调用,它的速度出乎意料地不快于它的速度:@sgibb从这一个案例中概括出来是危险的,一般来说,你应该避免性能优化而选择清晰的代码(除非它们明显减少了瓶颈)你确定这个索引是你代码中很慢的部分吗?我的代码运行得很慢,它主要使用哪些语句,所以我想可能是因为哪些语句