bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Help with APL expression


From: Louis de Forcrand
Subject: Re: [Bug-apl] Help with APL expression
Date: Wed, 5 Jul 2017 12:48:44 +0200

Is it important that they be grouped in the order specified by the key?
If not, this should do (with C the categories and S the strings):

(⊂[1]C∘.=∪C)/¨⊂S

If they must be ordered, then this can do it:

(⊂[1]C∘.=U[⍋U←∪C])/¨⊂S

In addition, the categories don’t have to be numbers.

Note that Dyalog’s (dyadic) key function is equivalent to this, with L being
the operator’s left operand:

L¨(⊂[1]C∘.=∪C)/¨⊂S

Cheers,
Louis

On 05 Jul 2017, at 11:43, Elias Mårtenson <address@hidden> wrote:

I have a list of strings, and a corresponding set of categorisations:

      strings ← 'foo' 'bar' 'abc' 'def' 'ghi' 'jkl'
      categories ← 1 1 0 2 1 0

I now need to group these strings according to category. In other words, when applying operation X, I need the following output:

      categories X strings
┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃┏→━━━━━━━━━━┓ ┏→━━━━━━━━━━━━━━━━┓ ┏→━━━━┓┃
┃┃"abc" "jkl"┃ ┃"foo" "bar" "hgi"┃ ┃"def"┃┃
┃┗∊━━━━━━━━━━┛ ┗∊━━━━━━━━━━━━━━━━┛ ┗∊━━━━┛┃
┗∊∊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

What is the best way to solve this?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]