我最初有两个长度相同的向量。这首先充满了蛋白质修饰位点“ E123”。第二个是用于参考该站点文献的唯一代码。我需要检查这些向量,才能从同一篇论文中删除对同一站点的多个引用。也就是说,如果VectorOne [1] == VectorOne [2] && VectorTwo [1] == VectorTwo [2],我需要删除重复项。问题是,当我使用for循环遍历数据时,可能会更改向量的长度,这意味着我正在使用的索引可能不再正确。
从向量中删除单个元素后,我循环到length(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]
}
}
}
答案 0 :(得分:0)
如果将向量放在数据框中,这很容易:
data = data.frame(primarySite, sitePMID)
deduplicated_data = unique(data)
您可以找到许多其他方式in the R-FAQ