使用incanter $ map进行一些澄清

时间:2013-04-15 15:26:59

标签: map clojure incanter

假设k列整数的incanter数据集freqs。我想通过将每个列值除以一个固定值(比如说20)将2列中的2个转换为0到1之间的值。我可以使用$ map函数为1列执行此操作:($ map(fn [x]( / x 20)):fq1 freqs)。 $ map上的incanter文档似乎表明可以使用列向量:“...将给定函数映射到给定列键的值......”。 但是我尝试这样做($ map(fn [x](/ x 20))[:fq1:fq2] freqs)给出了“错误的args数”区域。我理解这个错误。希望有人可以肯定地说,是否可以使用$ key的向量键向量;如果是,一个例子将是一个很大的帮助。

1 个答案:

答案 0 :(得分:1)

$map的incanter doc显示您可以将列的向量传递给$ map,因此您的代码变为:

($map (fn [f1 f2] (do-something-with f1 f2) [:fq1 :fq2] freqs) 

注意:当您映射超过2列时,该函数应该占用2个参数,错误的参数数量也不是因为您调用$ map的方式,而是您传递的函数只占用一个参数。