2016-04-22 8 views
2

Ich habe zwei Arrays in Julia, X = Array {Float64,2} und Y = Array {Float64,2}. Ich möchte ein vlookup wie Excel-Funktionalität durchführen. Ich kann so etwas nicht finden.Excel vlookup in Julia

+1

Sie können versuchen, eine Kombination der vielen Suchfunktionen in Julia zu verwenden: http://docs.julaulang.org/en/release-0.4/stdlib/arrays/?highlight=find#Base.find – amrods

Antwort

2

Der folgende Code gibt die erste Übereinstimmung aus s details matrix zurück, die den zugehörigen Datensatz aus einer Mastermatrix verwendet.

function vlook(master, detail, val) 
    val = master[findfirst(x->x==val,master[:,2]),1] 
    return detail[findfirst(x->x==val,detail[:,1]),2] 
end 

enter image description here

julia> vlook(a,b,103) 
1005 

Ein allgemeinerer Ansatz ist DataFrame.jl zu verwenden, mit Tabellendaten zu arbeiten.

+2

warum nicht definieren mit 'Funktion'? –

+0

@FelipeLema, tat ich. –

+0

Danke, aber das setzt voraus, dass ich versuche, einen einzelnen Wert zu vergleichen, wenn das, was vlookup wirklich tut, mit allen Werten in einer Spalte übereinstimmt (ich muss keinen Wert angeben), vorausgesetzt es gibt eine Übereinstimmung. – lara