我正在使用epiR软件包,因为它能很好地处理2比2的列联表,并具有比值比和总体归因分数。
通常,我的数据都已编码 0 =否 1 =是
所以当我这样做
tabele(var_1,var_2)
输出以表格对齐的形式出现
尽管EpiR希望其左上角的方块为暴露的+ VE结果+ VE-即它的输入,即左上角的方块应为Var 1 == 1和Var 2 == 1
当前,我通过将零重新编码为2或通过将其设置为因子并使用重新电平来实现此目的。两者都使其他分析有些烦人,因为总的来说,我希望Outcome + VE会在Outcome-VE之后出现
所以我想知道是否存在一种简单的方法(在表内)来翻转表的方向,从而实质上颠倒了行/列的顺序?
希望以上说明是有道理的,如果没有,我们很乐意提供澄清。
修改:感谢您的以下建议;只是为了澄清,我希望能够在从现有dataframe变量调用表时执行此操作-即当我正在执行的是table(data $ var_1,data $ var_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