# mcorrTopN

Syntax

mcorrTopN(X, Y, S, window, top, [ascending=true])

Please see Moving TopN Functions (mTopN functions) for the parameters and windowing logic.

Details

After stably sorting S in the specified ascending order, the function calculates the correlation of the first top pairs of elements in X and Y in the sliding window.

Examples

```\$ a =  2 5 3 1 9
\$ b = 2 3 1 7 13
\$ s = 6 8 4 2 7

\$ mcorrTopN(a, b, s, 4, 3)
[ , 1, 0.6547, -0.9333, 0.7206]

\$ s2=2021.01.01 2021.02.03 2021.01.23 2021.04.06 2021.12.29
\$ mcorrTopN(a, b, s2, 4, 3)
[ , 1, 0.6547, 0.6547, -0.6547]

\$ a1 = matrix(a, 4 3 6 2 3)
\$ b1=matrix(3 7 9 3 2, b)
\$ s1=matrix(2 3 1 7 3, s)
\$ mcorrTopN(a, b1, s1, 4, 3)
```

col1

col2

1

1

0.5

0.6547

0.5

-0.9333

-0.9986

0.7206

```\$ mcorrTopN(a1, b1, s, 4, 3)
```

col1

col2

1

-1

0.5

-0.982

0.866

-0.9333

-0.4018

-0.7206

```\$ mcorrTopN(a1, b1, s1, 4, 3)
```

col1

col2

1

-1

0.5

-0.982

0.5

-0.9333

-0.9986

-0.7206

```\$ n = 3000
\$ ids = 1..3000
\$ dates = take(2021.01.01..2021.10.01,n)
\$ prices = rand(1000,n)
\$ vals = rand(1000,n)
\$ t = table(ids as id,dates as date,prices as price,vals as val)
\$ dbName = "dfs://test_mcorrTopN_2"
\$ if(existsDatabase(dbName))dropDB(dbName)
\$ db = database(dbName,VALUE,1..5000)
\$ pt = db.createPartitionedTable(t,"pt",`id).append!(t)
\$ select mcorrTopN(price, val, id, 10, 5, true) from pt where date>2021.05.01
```

Related function: mcorr