在R中查找索引时不使用`which`

在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的评论,如果您确定您也将获

有没有比在%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 <- with(
  paper_author,
  author_id[paper_id %in% paper_id & author_id %in% data_authors[i]
)

total\u作者不调用
,它的速度出乎意料地不快于
它的速度:@sgibb从这一个案例中概括出来是危险的,一般来说,你应该避免性能优化而选择清晰的代码(除非它们明显减少了瓶颈)你确定这个索引是你代码中很慢的部分吗?我的代码运行得很慢,它主要使用哪些语句,所以我想可能是因为哪些语句