【问题标题】:Flip order Columns / Rows in a table翻转顺序表中的列/行
【发布时间】:2019-04-27 20:32:29
【问题描述】:

我正在使用 EpiR 包,因为它可以很好地使用 2 x 2 列联表,其中包含优势比和人口归因分数。

通常我的数据是经过编码的 0 = 否 1 = 是

所以当我这样做时

tabele(var_1,var_2)

输出结果是一个对齐的表格

对于它的输入,虽然 EpiR 希望左上角的正方形是 Exposed+VE 结果+VE - 即左上角的正方形应该是 Var 1==1 和 Var 2==1

目前,我通过将零重新编码为 2 或设置为一个因子并使用重新调整来做到这一点。这两个对于其他分析来说都有些烦人,因为一般来说我希望 Outcome+VE 出现在 Outcome-VE 之后

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

希望以上内容有意义 - 如果没有,很乐意提供说明。


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

【问题讨论】:

  • “tabele”是错字吗,应该是“table”?

标签: r contingency


【解决方案1】:

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

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

【讨论】:

  • 谢谢 - 从现有数据帧调用表时有没有办法做到这一点 - 即当我正在做的是表(data$var_1,data$var_2)
【解决方案2】:

使用因子水平:

# 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

【讨论】:

  • 谢谢 - 如上所述,我试图找到一个不涉及实际更改值的示例 - 因为它需要这种布局,所以我只是想要一些东西来翻转值基本上在函数调用中
  • 然后table(transform(df1, value = factor(value, levels = c("1", "0"), variable = factor(variable, levels = c("b", "a")))
猜你喜欢
  • 2016-12-31
  • 2015-08-21
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 2015-05-04
  • 1970-01-01
相关资源
最近更新 更多