将数据帧重新整形为R中的列联表

时间:2014-08-18 04:06:14

标签: r dataframe contingency

我有一系列excel文件,如下所示,其中包含列联表:

         cns random
H3k       12  682
Not_H3k  343  30222

当我使用'gdata'库使用此命令读取此文件时,它会提供下表,而不是列联表:

random <- read.xls ("analysis.xlsx", sheet = 1, header = TRUE)

              X    cns   random
        1     UTR  12    682
        2 Not_UTR 343  30222

我想对这些数据运行Fisher测试,如何将这些data.frame数据重新整理成列联表格式?

2 个答案:

答案 0 :(得分:0)

read.xls允许read.table的任何参数。具体来说,您可以指定包含行名称的列的编号。所以你可以使用

random <- read.xls ("analysis.xlsx", sheet = 1, header = TRUE, row.names=1)

继续进行测试

答案 1 :(得分:0)

您可以使用您拥有的数据框进行费希尔测试:

random = structure(list(X = structure(c(2L, 1L), .Label = c("Not_UTR", 
"UTR"), class = "factor"), cns = c(12L, 343L), random = c(682L, 
30222L)), .Names = c("X", "cns", "random"), class = "data.frame", row.names = c(NA, 
-2L))

random
        X cns random
1     UTR  12    682
2 Not_UTR 343  30222

fisher.test(random[,-1])

        Fisher's Exact Test for Count Data

data:  ddf[, -1] 
p-value = 0.1433
alternative hypothesis: true odds ratio is not equal to 1 
95 percent confidence interval:
 0.7892877 2.7613943 
sample estimates:
odds ratio 
  1.550284