翻转订单表中的列/行

时间:2018-11-26 08:15:53

标签: r contingency

我正在使用epiR软件包,因为它能很好地处理2比2的列联表,并具有比值比和总体归因分数。

通常,我的数据都已编码 0 =否 1 =是

所以当我这样做

tabele(var_1,var_2)

输出以表格对齐的形式出现

enter image description here

尽管EpiR希望其左上角的方块为暴露的+ VE结果+ VE-即它的输入,即左上角的方块应为Var 1 == 1和Var 2 == 1

当前,我通过将零重新编码为2或通过将其设置为因子并使用重新电平来实现此目的。两者都使其他分析有些烦人,因为总的来说,我希望Outcome + VE会在Outcome-VE之后出现

所以我想知道是否存在一种简单的方法(在表内)来翻转表的方向,从而实质上颠倒了行/列的顺序?

希望以上说明是有道理的,如果没有,我们很乐意提供澄清。


修改:感谢您的以下建议;只是为了澄清,我希望能够在从现有dataframe变量调用表时执行此操作-即当我正在执行的是table(data $ var_1,data $ var_2)时-理想情况下不必创建一个全新的对象

2 个答案:

答案 0 :(得分:5)

表是一个简单的矩阵。您可以按相反的顺序调用索引。

xy <- table(data.frame(value = rbinom(100, size = 1, prob = 0.5),
           variable = letters[1:2]))

     variable
value  a  b
    0 20 22
    1 30 28

xy[2:1, 2:1]

     variable
value  b  a
    1 20 30
    0 30 20

答案 1 :(得分:3)

使用因子水平:

# reproducible example (adapted from Roman's answer)
df1 <- data.frame(value = rbinom(100, size = 1, prob = 0.5),
                  variable = letters[1:2])

table(df1)
#      variable
# value  a  b
#     0 32 23
#     1 18 27

#convert to factor, specify levels
df1$value <- factor(df1$value, levels = c("1", "0"))
df1$variable <- factor(df1$variable, levels = c("b", "a"))

table(df1)
#      variable
# value  b  a
#     1 24 26
#     0 26 24