У меня изначально два вектора одинаковой длины.Эта первая полна сайтов модификации белка IE "E123".Второй - это уникальный код ссылки на литературу на этот сайт.Мне нужно пройти через эти векторы, чтобы удалить несколько ссылок на один и тот же сайт из одной и той же статьи.То есть, если VectorOne [1] == VectorOne [2] && VectorTwo [1] == VectorTwo [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]
}
}
}