Usando el operador each con la función sin en APL
Tengo una matriz anidada con los siguientes datos:
┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘
Me gustaría eliminar los números de cada uno, para que se vea así:
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
Intenté usar la función sin (~) con cada operador (¨) y un argumento correcto de '0123456789' pero obtengo un error de longitud. También intenté poner cada número en su propia matriz de esta manera:
┌→────────────────────────────────────────┐
│ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ │
│ │0│ │1│ │2│ │3│ │4│ │5│ │6│ │7│ │8│ │9│ │
│ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ │
└∊────────────────────────────────────────┘
pero esto también resultó en un error de longitud. Cualquier ayuda sería apreciada.
Respuestas
Suponiendo Dyalog APL, podría probar una función directa que elimine los dígitos ( ⎕D
) de las cadenas, aplicados a cada cadena en su matriz, por ejemplo
yourData
┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘
{⍵~⎕D}¨yourData
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
Lo que busca es restar conjuntos ("sin-ing") el conjunto completo de dígitos ( ⎕D
) de cada uno. Así que adjuntamos el conjunto de dígitos para actuar sobre él como un todo:
'ABC12' 'DEF34'~¨⊂⎕D
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
¡Pruébelo en línea!
Observe que esto se parece mucho a lo que quiere:
Sus datos (
'ABC12' 'DEF34'
) sin (~
) cada (¨
) del conjunto completo (⊂
) de dígitos (⎕D
).