Я имею дело со следующей проблемой, у меня есть два вектора, а именно:
index1<-c(10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21, 22, 23, 24, 25, 26, 27, 28, 29)
index2<-c(17 ,18, 19, 20 ,22 ,23, 24, 25, 26, 27, 28, 29, 30 ,31 ,32, 33 ,42, 43, 44,45, 46 ,47 ,48, 49, 50, 51, 52 ,53, 54 ,55, 56)
Я хочу сохранить все компоненты index2[j]
, которые можно записать как 2*index1[i]+k
, где k=0,1,2,3
.для некоторых i in 1:length(index1),j in 1:length(index2)
Это, например, первый компонент index2, равный 17, и его нельзя записать как 2*index1[i]+k
, поэтому этот первый компонент следует удалить (или заменить на NA).Я с трудом пытаюсь понять, как это сделать, я пытался сделать цикл, но безуспешно.
for(j in 1:length(index2)){
for(i in 1:length(index1)){
for(k in 0:3){
if (index2[j]!=(2*index1[i]+k)){index2[j]=NA}else{index2[j]=index2[j]}}}}
В этом конкретном примере желаемым выводом является вектор index2_refined
, которыйсодержит все компоненты index2
за исключением первого, то есть
c( 20 ,22 ,23, 24, 25, 26, 27, 28, 29, 30 ,31 ,32, 33 ,42, 43, 44,45, 46 ,47 ,48, 49, 50, 51, 52 ,53, 54 ,55, 56)
Любая помощь будет принята с благодарностью.