簡體   English   中英

如何對ftable中的列和行進行排序

[英]How to order columns and rows in ftable

我想重新排序 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

謝謝你的幫助!

一種方法是按自定義順序轉換為具有levelsfactor

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 class(讀取數據后)。 integer 中的默認排序是從最低 integer 值到最高值,即 0 到 1。為了反轉該順序,我們轉換為自定義順序中指定levelsfactor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM