R 当向量的长度发生变化时,如何循环向量?

R 当向量的长度发生变化时,如何循环向量?,r,R,我最初有两个长度相同的向量。第一个是蛋白质修饰位点,即“E123”。第二个是本网站参考文献的唯一代码。我需要遍历这些向量,从同一篇论文中删除对同一站点的多个引用。也就是说,如果VectorOne[1]==VectorOne[2]&&vectorwo[1]==vectorwo[2],我需要删除重复项。问题是当我使用for循环遍历数据时,我可能会改变向量的长度,这意味着我使用的索引可能不再正确 一旦我从向量中删除了一个元素,我循环到长度(primarySite)的值就太高,代码崩溃 以下是这两个向量

我最初有两个长度相同的向量。第一个是蛋白质修饰位点,即“E123”。第二个是本网站参考文献的唯一代码。我需要遍历这些向量,从同一篇论文中删除对同一站点的多个引用。也就是说,如果VectorOne[1]==VectorOne[2]&&vectorwo[1]==vectorwo[2],我需要删除重复项。问题是当我使用for循环遍历数据时,我可能会改变向量的长度,这意味着我使用的索引可能不再正确

一旦我从向量中删除了一个元素,我循环到长度(primarySite)的值就太高,代码崩溃

以下是这两个向量的前10个值的示例:

primarySite[1:10]
 [1] ""     ""     "D248" "E241" "E242" "E241" "E242" "D244" "D244" "E241"
sitePMID[1:10]
 [1] 24641686 24055347 23955771 23955771 23955771 23955771 23955771 23955771 23955771 23955771

Desired Output:
primarySite[1:6]
 [1] ""     ""     "D248" "E241" "E242" "D244" 
sitePMID[1:6]
 [1] 24641686 24055347 23955771 23955771 23955771 23955771 


for(i in 1:length(primarySite)){
      for(j in (i+1):length(primarySite)){
        if(primarySite[i] == primarySite[j] && sitePMID[i] ==      
sitePMID[j]){
      primarySite <- primarySite[-j]
      sitePMID <- sitePMID[-j]

    } 
  }
}
primarySite[1:10]
[1] “D248”“E241”“E242”“E241”“E242”“D244”“D244”“E241”
sitePMID[1:10]
[1] 24641686 24055347 23955771 23955771 23955771 23955771 23955771 23955771 23955771 23955771
期望输出:
主要站点[1:6]
[1] “D248”E241“E242”D244
sitePMID[1:6]
[1] 24641686 24055347 23955771 23955771 23955771 23955771 
适用于(i/1:长度(主要场地)){
对于(j in(i+1):长度(原生矿)){
if(primarySite[i]==primarySite[j]&sitePMID[i]=
sitePMID[j]){

primarySite如果我们将向量放在数据帧中,这很容易:

data = data.frame(primarySite, sitePMID)
deduplicated_data = unique(data)

您可以找到许多其他方法

如果我们将向量放在数据帧中,这很容易:

data = data.frame(primarySite, sitePMID)
deduplicated_data = unique(data)

你可以找到很多其他方法

为什么
其他
而无需做任何事情?是的,你是对的,这是不必要的。有很多更好的方法可以做到这一点。你甚至不需要循环(更不用说2!)。如果您为primarySite和SitepId提供示例数据,则会更容易提供帮助。如果您为这10个元素添加所需的输出,则会有所帮助。您希望删除所有重复项还是仅删除连续重复项?为什么不做任何事?是的,您是对的,这是不必要的。有许多更好的方法可以做到这一点。您很可能不想这样做甚至不需要循环(更不用说2!)。如果为primarySite和sitePMID提供示例数据,会更容易提供帮助。如果为这10个元素添加所需的输出,则会有所帮助。是否要删除所有重复项或仅连续重复项?