1

我想在 R 中重新排序 ftable 的行和列。目前该表如下所示:

电流表

现在我想切换行/列,以便首先显示“1”的计数,然后显示“0”的计数。例如,行“antib”应该切换,以便计数为“1”的行显示在计数为“0”的上方。

有没有办法做到这一点?

我使用了以下代码和数据:

library("tidyverse")

csectionrisks <- read.table("kaiserschnitt.raw",header=TRUE)
csectionrisks %>% mutate_if(is.character,as.numeric)

glimpse(csectionrisks)
attach(csectionrisks)

ftable(xtabs(n~antib+risk+nplan+infbin), row.vars=1:2)

我使用的数据集可以在这里下载: Dataset

谢谢你的帮助!

4

1 回答 1

2

一种方法是按自定义顺序转换为factorwithlevels

library(dplyr)
csectionrisks1 <- csectionrisks %>% 
   mutate(across(c(infbin, nplan, risk, antib), factor, levels = c(1, 0))) 
ftable(xtabs(n~antib+risk+nplan+infbin, data = csectionrisks1), row.vars=1:2)

-输出

#     nplan   1     0   
#           infbin  1  0  1  0
#antib risk                   
#1     1           11 87  1 17
#      0            0  0  0  2
#0     1           23  3 28 30
#      0            0  9  8 32

'infbin'、'nplan'、'risk'、'antib' 列是integer类(读取数据后)。整数的默认排序是从最低整数值到最高整数值,即 0 到 1。要反转该顺序,我们转换为自定义顺序中指定factorlevels

于 2021-03-11T19:30:22.613 回答