2016-08-11 39 views
5

我试图使用map()在(n x 1)个字符串数组上应用函数quandl。 (http://quandljl.readthedocs.io/en/latest/get_data.htmlJulia:通过map()函数传递关键字参数以起作用

但是,我希望将更多的字符串作为参数传递给函数,例如from = Date1to = Date2。我似乎无法找到一种方法使map()在字符串数组上应用函数,同时还传递关键字参数以将数据从Date1下载到Date2

更一般的问题是:如何使用map()在多个元素上应用函数,同时还将其他参数传递给此函数?

+2

另请参阅此相关帖子http://stackoverflow.com/questions/38853197/can-i-use-map-with-fixed-input/38853852#38853852 –

回答

13

您需要创建一个匿名函数,该函数使用适当的参数调用quandl并映射到您的数据上。由于我对你想如何拨打quandl有点不清楚,我只是用一个制作的例子。假设f需要两个位置参数和一个关键字k;假设您想将其应用于v的每个值,其中2作为第二个参数,k = "abc"。你可以这样做,像这样:

map(x -> f(x, 2, k = "abc"), v) 

如果匿名函数体又大又复杂,您可能需要使用Julia的do-block syntax并写出计算是这样,而不是:

map(v) do x 
    f(x, 2, k = "abc") 
end 

在这个例子中,这没有多大意义,但如果匿名函数是多行代码,那么这可能是可取的。