2016-08-11 37 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 

在這個例子中,這沒有多大意義,但如果匿名函數是多行代碼,那麼這可能是可取的。