将成对数据转换为与prefmod兼容的列顺序

时间:2018-07-20 22:44:57

标签: r dplyr

prefmod软件包希望采用以下形式的成对比较:

(AB)(AC)(BC)(AD)(BD)(CD)...等

我试图弄清楚如何有效地将长格式的数据帧转换为这种格式。即:

dat <- combn(c("A","B","C","D"),2) %>% t() %>% 
as.data.frame() %>% 
mutate(V3=round(runif(6)))

我想将其转换为表格形式(例如)

   AB AC BC AD BD CD
V3 0  1  0  0  1  0

我正在努力解决的主要问题是一个习惯用法,可以正确地对数据进行排序。如果我可以重新排列数据框dat的外观,例如:

V1 V2 V3
A  B  0
A  C  1
B  C  0
A  D  0
B  D  1
C  D  0

...那我就可以去

dat %>% unite("V1V2",c("V1","V2")) %>% 
column_to_rownames(var="V1V2") %>% t()

...但是我遇到的困难是,我找不到一个习惯来以prefmod希望的方式对数据帧的行进行重新排序。 (AB)(AC)(BC)(AD)(BD)(CD)的模式到底是什么,我该如何以编程方式生成该顺序?

0 个答案:

没有答案