Lo APL expresión que mejor emula la instrucción select de SQL, dada una matriz

0

Pregunta

Tengo los archivos CSV con datos numéricos y me gustaría realizar el análisis de estos datos. Tengo la esperanza de que el uso de APL me dará más flexibilidad que la lectura de esta en mysql y la realización de las mismas. Pero para empezar me gustaría hacer extracciones simples como 'select * from mydata donde col1 = 2020'. Hasta ahora entiendo que puedo usar Comprimir. Pero para eso necesito saber la expresión que daría la matriz de tipo boolean para la izquierda argumento de comprimir (es decir, el APL versión de 'donde col1 = 2020'). Búsquedas en línea ¿no me lleve a cualquier lugar en ese departamento.

apl boolean dyalog filter
2021-11-23 07:45:51
1

Mejor respuesta

0

Usted está hecho a la derecha en sus especulaciones.

"col1 = 2020" sería mydata[;1] = 2020 así que la cosa entera es (mydata[;1] = 2020) ⌿ mydata

A mi padre le gustaba definir

∇ data ← data where condition
  data ← condition⌿data
∇

así que él podría escribir cosas como data where data[;1] = 2020

Utilizando Dyalog APL características

Dyalog APL proporciona algunos métodos de representación de sutilezas:

  • La línea de la expresión puede ser escrita como mydata ⌿⍨ mydata[;1] = 2020
  • La definición anterior de where puede escribirse simplemente como where ← ⌿⍨
2021-11-23 09:13:50

Lo que yo veo. Bueno! Curiosidad: ¿hay una manera de evitar la repetición de los mydata de referencia?
Rudi Angela

@RudiAngela Hay muchas variaciones posibles, especialmente si usted empezar a definir los operadores. E. g. select ← {⍵ ⌿⍨ ⍺⍺ ⍵} ⋄ col ← ⌷⍤1⍨ permite escribir (2020=col∘1)select mydata o podría definir col ← {⍵ ⌿⍨ ⍺ ⍺⍺ ⍵[;⍵⍵]} ⋄ in←⊢ y escribir 2020 = col 1 in mydata
Adám

@RudiAngela Siéntase libre de visitar apl.chat para discutir más.
Adám

Va a hacer. Gracias por la sugerencia.
Rudi Angela

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................