Фильтрация строк по значению столбца

У меня есть этот простой d-fn в Dyalog:

{⍺,≢⍵} ⌸ 'koala'

, который возвращает:

k 1
o 1
a 2
l 1

Я хочу отфильтровать строки из результирующего массива, чтобы (например, для значения фильтра =2) я получил:

a 2
l 1

В общем, я хотел бы знать, как работать с n-м столбцом 2D-массива в APL.

1 ответ

Решение

Ваш ожидаемый ответ также показывает, что вы хотели бы видеть строку с l/1 - это правильно?

Предполагая, что вы действительно после строк, где 2-й столбец =2, вы можете фильтровать с другим dfn:

      {(⍵[;2]=2)⌿⍵}{⍺,≢⍵} ⌸  'koala'
a 2

Что касается общей части вопроса, я надеюсь, что использование индексации [;2] отвечает на вопрос, иначе мне понадобится еще несколько слов;-)

Другие вопросы по тегам