Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Map a function conditionally over keys in an association
ResourceFunction["KeyMapIf"][f,test,assoc] applies f to only those keys ki in assoc for which test[ki] gives True. | |
ResourceFunction["KeyMapIf"][f,test] is the operator form of ResourceFunction["KeyMapIf"]. |
Map the function f over the keys of an Association, but only if the key is a string:
In[1]:= |
Out[1]= |
Turn any keys that are numeric in an Association into strings, using InputForm to show that it worked:
In[2]:= |
Out[514]= |
Use the operator form, using the resource function ShowQuotes to show that it worked:
In[515]:= |
Out[515]= |
Compare the output from an EntityValue operation before KeyMapIf is used with the much nicer output after being adjusted by KeyMapIf:
In[516]:= |
Out[516]= |
As with the resource function MapIf, KeyMapIf does not itself support level specifications. KeyMapIf can operate at deeper levels of an Association, however, through the use of Query:
In[517]:= |
Out[517]= |
KeyMapIf can work on an Association of associations contained in a Dataset (or even more deeply):
In[518]:= |
Out[518]= |
This work is licensed under a Creative Commons Attribution 4.0 International License