Skip to content

Instantly share code, notes, and snippets.

@cbaragao
Last active September 30, 2025 20:51
Show Gist options
  • Select an option

  • Save cbaragao/c49e166a7e43861c12513179636ac08e to your computer and use it in GitHub Desktop.

Select an option

Save cbaragao/c49e166a7e43861c12513179636ac08e to your computer and use it in GitHub Desktop.
// Make Table 1
T1 = DATATABLE("EntityID",INTEGER,"Feature",STRING,{
{ 1,"A" },{ 1,"B" },{ 1,"C" },{ 2,"B" },{ 2,"C" },{ 2,"D" },{ 3,"A" },{ 3,"E" },{ 3,"F" },{ 4,"C" },{ 4,"D" },{ 4,"F" },{ 5,"A" },{ 5,"B" },{ 5,"F" }
})
// Make Table 2
T2 = DATATABLE("EntityID",INTEGER,"Feature",STRING,{
{ 101,"B" },{ 101,"C" },{ 101,"E" },{ 102,"A" },{ 102,"D" },{ 102,"F" },{ 103,"C" },{ 103,"D" },{ 103,"G" },{ 104,"A" },{ 104,"B" },{ 104,"G" },{ 105,"E" },{ 105,"F" },{ 105,"G" }
})
Dist =
VAR __Total1 =
CALCULATE ( COUNTROWS ( T1 ), ALL ( T1 ) )
VAR __Total2 =
CALCULATE ( COUNTROWS ( T2 ), ALL ( T2 ) )
VAR __Comparison =
ADDCOLUMNS (
ADDCOLUMNS (
SUMMARIZE (
UNION (
SELECTCOLUMNS ( T1, "Feature", T1[Feature] ),
SELECTCOLUMNS ( T2, "Feature", T2[Feature] )
),
[Feature]
),
"__COUNT1", CALCULATE ( COUNTROWS ( T1 ), TREATAS ( { [Feature] }, T1[Feature] ) ),
"__COUNT2", CALCULATE ( COUNTROWS ( T2 ), TREATAS ( { [Feature] }, T2[Feature] ) )
),
"__P1", DIVIDE ( [__COUNT1], __Total1 ),
"__P2", DIVIDE ( [__COUNT2], __Total2 )
)
// Manhattan
VAR __L1_Distance =
SUMX ( __Comparison, ABS ( [__P1] - [__P2] ) )
// Euclidean
VAR __L2_Distance =
SQRT ( SUMX ( __Comparison, POWER ( [__P1] - [__P2], 2 ) ) )
RETURN
__L1_Distance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment