## I leave it to you to add the NA edges > rk <- c(2,4,3,1)
> outer(rk,rk,"<")+0 [,1] [,2] [,3] [,4] [1,] 0 1 1 0 [2,] 0 0 0 0 [3,] 0 1 0 0 [4,] 1 1 1 0 Cheers, Bert Bert Gunter "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." -- Clifford Stoll On Mon, Jul 27, 2015 at 12:38 PM, Dimitri Liakhovitski <dimitri.liakhovit...@gmail.com> wrote: > I have 5 items in total (1:5), but I show a person only 4 items (1:4) > and ask this person to rank items 1:4 in terms of preferences (1 is > best, 2 is second best, 4 is worst), and I get a vector of ranks: > ranks <- c(2,4,3,1) > > # That means that this person liked item 4 best and item 2 worst. > > I would like to "unfirl" this vector of ranks into a matrix of > preferences where if the row item prefers the column item, then it's a > 1. Otherwise, it's a zero. So, the output should be a 5 by 5 matrix > (because overall we have 5 items, not 4, but item 5 did not > participate in rankings), and it would always have zeros in a > diagonal.: > > 0 1 1 0 NA > 0 0 0 0 NA > 0 1 0 0 NA > 1 1 1 0 NA > NA NA NA NA 0 > > I can loop through all possible pairs the person saw and fill the > matrix accordingly, but it seems like a lot of looping. Could one do > it in a more elegant way? > > Thank you very much! > > > -- > Dimitri Liakhovitski > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.