Finding all unique pairings in a list
Comparing all pairs of items is a common idiom in data analysis. This recipe will cover how to create a list of element pairs out of a list of elements. For example, if there is a list [1, 2, 3], we will create a list of every possible pair-ups [(1, 2), (1, 3), (2, 3)].
Notice that the order of pairing does not matter. We will create a list of unique tuple pairs so that we can compare each item to every other item in the list.
How it works…
Create a new file, which we call Main.hs
, and insert the code explained in the following steps:
Import the following packages:
import Data.List (tails, nub, sort)
Construct all unique pairs from a list of items as follows:
pairs xs = [(x, y) | (x:ys) <- tails (nub xs), y <- ys]
Print out all unique pairings of the following list:
main = print $ pairs [1,2,3,3,4]
The output will be as follows:
[(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]
See also
We can apply the pairs
algorithm to the Using the Pearson correlation coefficient...