Эффективный способ фильтрации списка - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь извлечь подмножества списка словарных слов на основе определенных критериев.

n выбранные слова в каждом наборе / векторе должны иметь одинаковые 1st, 3rd и 4th символ как i th

Конкретнее, рассмотрим список

KHRSTT,  KHRSTK,  KKTLTK, TTLTTK, TKLTER

Из этого списка я хочу набор всех слов с 1st, 3rd, 4th символ совпадает

{
  {KHRSTT, KHRSTK},
  {TTLTTK, TKLTER}
}

или

{
  {KHRSTT, KHRSTK},
  {TTLTTK, TKLTER},
  {KKTLTK}
}

1 Ответ

0 голосов
/ 26 сентября 2018
list  <- list('KHRSTT',  'KHRSTK',  'KKTLTK', 'TTLTTK', 'TKLTER')

a <- matrix("0",nrow = length(list),ncol= length(list))  

for (x in 1:length(list)){
    for (y in 1:length(list)){
        if( y != x){
            if(substr(list[x], start = 1, stop = 1) == substr(list[y], start = 1, stop = 1) &
               substr(list[x], start = 3, stop = 3) == substr(list[y], start = 3, stop = 3) &
               substr(list[x], start = 4, stop = 4) == substr(list[y], start = 4, stop = 4)){
                 a[x,x] = as.character(list[x])
                 a[x,y] = as.character(list[y])
                }
        }
    }
}

print(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...