vector - Spearman's footrule distance with base R -


given 2 permutations:

v1 [1] 4 3 1 5 2  v2 [1] 2 3 4 5 1 

how compute spearman's footrule distance (total displacement of elements) base r? (flexible 2 permutations of size n)

for example, these 2 vectors, it's follows:

1 moved 2 places v1 v2
2 moved 4 places v1 v2
3 moved 0 places v1 v2
4 moved 2 places v1 v2
5 moved 0 places v1 v2

so total distance be: 2+4+0+2+0 = 8

here method using sapply, which, , sum:

sum(sapply(seq_along(v1), function(i) abs(i - (which(v2 == v1[i]))))) 

here, move along indices of v1 , calculate distance of index of element in current index position in v2. these summed together.

i suspect along lines of @alexis_laz's solution in comments may have greater computational efficiency.


Comments

Popular posts from this blog

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.Error occurred in starting fork -

windows - Debug iNetMgr.exe unhandle exception System.Management.Automation.CmdletInvocationException -

configurationsection - activeMq-5.13.3 setup configurations for wildfly 10.0.0 -