将函数应用于字典
Applying a Function to a dictionary
我是 KDB 的新手,目前正在掌握 dictionaries.I 有一本
格式的字典
UK|34 55 6 16
Italy|44 78 43 12
Iran|21 4 2
我如何创建一个函数并将其应用到我的字典,以便可以计算每个键的平均值?
q)avgFunc:{sum[x]%count x} /create function
q)/apply the function to each dictionary value
q)avgFunc each `UK`Italy`Iran!(34 55 6 16;44 78 43 12;21 4 2)
UK | 27.75
Italy| 44.25
Iran | 9
https://code.kx.com/q/ref/each/
each 副词将函数应用于字典的每个值
正如@jomahony 所说,function each dict
就是您要找的。
在一些罕见的例子中——如果你的函数适用于列表的列表——你甚至不需要 each,例如
q)1+d
UK | 35 56 7 17
Italy| 45 79 44 13
Iran | 22 5 3
q)
q)reciprocal d
UK | 0.02941176 0.01818182 0.1666667 0.0625
Italy| 0.02272727 0.01282051 0.02325581 0.08333333
Iran | 0.04761905 0.25 0.5
但大多数自定义函数和可能的大多数内置函数(包括 avg)都需要它
我是 KDB 的新手,目前正在掌握 dictionaries.I 有一本
格式的字典UK|34 55 6 16
Italy|44 78 43 12
Iran|21 4 2
我如何创建一个函数并将其应用到我的字典,以便可以计算每个键的平均值?
q)avgFunc:{sum[x]%count x} /create function
q)/apply the function to each dictionary value
q)avgFunc each `UK`Italy`Iran!(34 55 6 16;44 78 43 12;21 4 2)
UK | 27.75
Italy| 44.25
Iran | 9
https://code.kx.com/q/ref/each/
each 副词将函数应用于字典的每个值
正如@jomahony 所说,function each dict
就是您要找的。
在一些罕见的例子中——如果你的函数适用于列表的列表——你甚至不需要 each,例如
q)1+d
UK | 35 56 7 17
Italy| 45 79 44 13
Iran | 22 5 3
q)
q)reciprocal d
UK | 0.02941176 0.01818182 0.1666667 0.0625
Italy| 0.02272727 0.01282051 0.02325581 0.08333333
Iran | 0.04761905 0.25 0.5
但大多数自定义函数和可能的大多数内置函数(包括 avg)都需要它