Mám CSV soubory s číselná data a chtěl bych provést analýzu na tato data. Já jsem doufal, že pomocí APL mi dá větší flexibilitu než čtení tohoto do mysql a provádění vybere. Ale pro začátek bych chtěl dělat jednoduché extrakce jako 'select * from mydata kde sloupec1 = 2020'. Zatím jsem pochopil, že ti můžu použít Obklad. Ale na to potřebuji vědět výraz, který by přinášel boolean pole na levé argument obklad (tj. APL verze ', kde col1 = 2020'). On-line vyhledávání nedostal nikam mě v tomto oddělení.
0
Máte skutečně pravdu, v vaše spekulace.
"col1 = 2020" by mydata[;1] = 2020
takže celá věc je (mydata[;1] = 2020) ⌿ mydata
Můj otec měl rád definovat
∇ data ← data where condition
data ← condition⌿data
∇
aby mohl psát věci jako data where data[;1] = 2020
Využití Dyalog APL funkce
Dyalog APL poskytuje některé notační jemnosti:
- Inline výraz může být zapsán jako
mydata ⌿⍨ mydata[;1] = 2020
- Výše uvedené definice
where
může být zapsán jednoduše jakowhere ← ⌿⍨
Vidím. Pěkné! Zvědavý: existuje způsob, jak se vyhnout opakování mydata odkaz?
Rudi Angela
@RudiAngela Existuje mnoho variant možné, a to zejména pokud začnete definovat operátory. E. g.
Adám
select ← {⍵ ⌿⍨ ⍺⍺ ⍵} ⋄ col ← ⌷⍤1⍨
umožňuje psát (2020=col∘1)select mydata
nebo můžete definovat col ← {⍵ ⌿⍨ ⍺ ⍺⍺ ⍵[;⍵⍵]} ⋄ in←⊢
a psát 2020 = col 1 in mydata
@RudiAngela neváhejte a navštivte apl.chat diskutovat dále.
Adám
Bude dělat. Díky za tip.
Rudi Angela