R折叠表中的数据

时间:2014-05-08 17:04:30

标签: r reshape

我有一张表格如下:

  Outcome   System  k_pval  k_exactpval k
  A          R       num    num        num
  B          S       num    num        num
  C          T       num    num        num
  A          X       num    num        num
  B          Y       num    num        num

如何跨制表进行操作,以便System显示在列中,Outcome在行中,然后对于每个系统/结果对,有3列(k,k_pval,k_exact_pval)。

例如,你会有

     A      A            A             B       B        B
R   k_1    k_p_val1  k_exact_pval1     k_2    k_pval2   k_exact_pval2  
S   k_3    k_p_val3  k_exact_pval3     k_4    k_pval4   k_exact_pval4    

谢谢!

1 个答案:

答案 0 :(得分:1)

要重塑您的数据,reshape2包非常有用。我认为这将完成你所追求的目标。

dd <- data.frame(
    Outcome = c("A", "B", "C", "A", "B"), 
    System = c("R", "S", "T", "X", "Y"),
    k_pval = c(0.02, 0.04, 0.01, 0.1, 0.22), 
    k_exactpval = c(0.05, 0.02, 0.01, 0.3, 0.1), 
        k = c(4, 5, 3, 3, 1)
)

mm<-melt(dd, id.var=c("Outcome","System"))
dcast(mm, System~variable+Outcome)