合并两个或多个数据框以便导出

时间:2015-12-09 15:35:36

标签: r dataframe export

我需要在r中对数据集中的几个组合进行统计测试。最终结果需要发布,我不能有很多表。 我的工作流程现在看起来像这样:我使用pairwise.t.test函数计算t.tests,然后将结果写入csv表,并在LO calc中将以后的几个csv表组合起来(或者如果你想要的话,结合到xls文件中) )。

 ttestC30.class<- pairwise.t.test(LD$C30,LD$class)
 write.table(ttestC30.class$p.value, 'ttestC30.class.csv')
 ttestC100.class<- pairwise.t.test(LD$C100,LD$class)
 write.table(ttestC100.class$p.value, 'ttestC100.class.csv')
 ttestN30.class<- pairwise.t.test(LD$N30,LD$class)
 write.table(ttestN30.class$p.value, 'ttestN30.class.csv')

每个表都给出了这样的输出:

        class1   class2  class3
class1   C30 
class2   C30     C30 
class3   C30     C30      C30 

最后,我想将其导出到我的文本文档中,格式如下:

                class1             class2                  class3
class1   C30 / C100 / N30
class2   C30 / C100 / ...     … / … / ...
class3   C30 / C100 / ...     0.608 / 0.057 / 0.632   0.165 / 0.667 / 0.002

必须有一种更方便的方法来做到这一点,不是吗? 比使用pairwise.t.test更通用的解决方案也很棒,然后我可以重复与其他测试相同的解决方案。

修改:可重复的示例

attach(airquality)
a<- pairwise.t.test(Ozone, Month)
b<- pairwise.t.test(Temp, Month)

这是例如

的输出
round(a$p.value,3)
    May   Jun   Jul   Aug
Jun   1    NA    NA    NA
Jul   0 0.051    NA    NA
Aug   0 0.050 1.000    NA
Sep   1 1.000 0.005 0.004

这是我想要的输出,显示a和b组合:

      May  Jun         Jul        Aug
Jun   1/0  NA/NA       NA/NA      NA/NA
Jul   0/0  0.051/0.020 NA/NA      NA/NA
Aug   0/0  0.050/0.020 1.000/0.97 NA/NA
Sep   1/0  1.000/0.405 0.005/0.00 0.004/0

1 个答案:

答案 0 :(得分:0)

我们可以尝试:

a <- round(a$p.value,3) 
b <- round(b$p.value,3)     
matrix(paste(a,b,sep="/"),nrow=nrow(a))