DataFrame을 parName|region|year
으로 구성하고 액세스 기능을 getData(parName,reg,year)
(내 자신의 쿼리 로직을 구현하기 때문에 액세스 기능을 사용합니다)으로 액세스했습니다.줄리아의 동적 함수 이름 정의가 가능합니까?
unique(df[:parName])
을 기반으로 par1(region,year)
""을 가리키는 기능 집합을 동적으로 만들 수 있습니까?
그렇다면 어떤 접근 방식을 사용합니까?
이 조금 ..가 I가 가능한 동적 선언하는 경우에 /을 정의 배회하면서 동적으로 함수를 호출하는 방법을 설명한다 .. this 질문의 대향
EDIT :
저는 다차원 방정식을 작성할 때 가장 깨끗하고 간단한 구문을 사용하기 위해이 접근법을 사용하고 있습니다.
for par in unique(dropna(df[:parName]))
@eval ($(Symbol("$(par)_"))) = (r,d1,d2="",y=-1,op=sum) -> gd($par,r,d1,d2,y,op)
@eval ($(Symbol("$(par)!"))) = (v,r,d1,d2="",y=-1) -> sd(v,$par,r,d1,d2,y)
end
즉, 내가 par!()
이 사항 setData 형이고 par_()
가 GetData의 형 방정식이라는 규칙을 사용하고 있습니다 :로 나는 그것을 구현합니다 (@Liso 답변 덕분에) 있었다. When I'll be able to complete the macro that transforms f(dim1,dim2) = value
into f(value,dim1,dim2)
나는 매우 분명하다 LaTeX의 같은 (그리고 AMPL 같은) 구문을 사용하여 내 모델을 쓸 수 있습니다 :
@meq price!(tp in secProducts, r in fr2) = sum(price_(r,pp,"",y2)*a_(r,pp,tp,y2) for pp in priProducts) + margin_(r,tp,"",y2)
왜 당신이 비록 이런 짓을 했을까하는 데 도움이 될 수 있을까? 일반적으로 어레이에 속해야하는 것에 대해 고유 한 '정렬 된'식별자를 사용하는 것은 매우 바람직하지 않습니다. 대부분의 경우 두 개의 인수 만 취하는 함수를 정말로 원한다면 클로저 생성 함수와 "currying"(예 : get ("par1") (region, 년)') –