With NAs it'd be: rk <- c(2,NA,4,3,1, NA) outer(rk, rk, "<") + 0
Wow, I still can't believe it - just one line! On Mon, Jul 27, 2015 at 5:31 PM, Dimitri Liakhovitski <dimitri.liakhovit...@gmail.com> wrote: > Wow! > > On Mon, Jul 27, 2015 at 5:28 PM, Bert Gunter <bgunter.4...@gmail.com> wrote: >> ## 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. > > > > -- > Dimitri Liakhovitski -- 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.