tabel=data.frame(isikud=c("Juku", "Kati", "Mati", "Juku", "Juku","Kati"),
            huvialad=c("jalgpall","korvpall", "jalgpall", "korvpall", "võrkpall", "võrkpall"), stringsAsFactors = FALSE)
tabel
##   isikud huvialad
## 1   Juku jalgpall
## 2   Kati korvpall
## 3   Mati jalgpall
## 4   Juku korvpall
## 5   Juku võrkpall
## 6   Kati võrkpall
vastus=tapply(tabel$isikud, tabel$huvialad, function(x)x)
vastus
## $jalgpall
## [1] "Juku" "Mati"
## 
## $korvpall
## [1] "Kati" "Juku"
## 
## $võrkpall
## [1] "Juku" "Kati"
m=matrix(nrow=length(vastus), ncol=length(vastus))
rownames(m)=names(vastus)
colnames(m)=names(vastus)
for (huviala1 in names(vastus)){
  for(huviala2 in names(vastus)){
    m[huviala1, huviala2]=length(intersect(vastus[[huviala1]], vastus[[huviala2]]))
  }
}
m
##          jalgpall korvpall võrkpall
## jalgpall        2        1        1
## korvpall        1        2        2
## võrkpall        1        2        2