I detta kapitel används data från Right Heart Catetherization (RHC) för att demonstrera funktioner för att tabellera data. Du kan ladda ner data med följande kommando:
rhc <- read.csv("https://hbiostat.org/data/repo/rhc.csv", header = TRUE)
Funktioner i base R
Base R är grundinstallationen utan några tilläggspaket. Den mest använda funktionen för tabeller i base R är table()
.
En enskild kategorisk variabel kan tabelleras med funktionen table()
:
table(rhc$sex)
Female Male
2543 3192
En korstabell skapas som följer:
table(rhc$sex, rhc$death)
No Yes
Female 919 1624
Male 1094 2098
Notera att första argumentet (sex
) hamnar som rader och andra argumentet (death
) blir kolumner i korstabellen.
Vi kan göra en korstabell stratifierad på en tredje variabel. För att stratifiera föregående tabell på variabeln ca
(cancer) skriver vi som föjer:
table(rhc$sex, rhc$death, rhc$ca)
ca = Metastatic
No Yes
Female 24 175
Male 12 173
ca = No
No Yes
Female 798 1151
Male 960 1470
ca = Yes
No Yes
Female 97 298
Male 122 455
Tabellering med tilläggspaket
Paketen janitor, dplyr, gtsummary, crosstable och rstatix innehåller kraftfulla funktioner för att skapa deskriptiva tabeller. Installera paketen med följande kommando:
install.packages(c("rstatix", "janitor", "gtsummary", "crosstable"))
Rstatix
Med funktionen get_summary_stats()
genererar vi deskriptiva data för utvalda variabler. I nedanstående exempel väljer vi variablerna age, aps1, urin1, adld3p, paco21 och ph1:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
# A tibble: 6 × 13
variable n min max median q1 q3 iqr mad mean sd se ci
adld3p 1439 0 7 0 0 2 2 0 1.18 1.82 0.048 0.094
age 5735 18.0 102. 64.0 50.1 73.9 23.8 17.0 61.4 16.7 0.22 0.432
aps1 5735 3 147 54 41 67 26 19.3 54.7 20.0 0.264 0.517
paco21 5735 1 156 37 31 42 11 8.90 38.7 13.2 0.174 0.341
ph1 5735 6.58 7.77 7.4 7.34 7.46 0.12 0.089 7.39 0.11 0.001 0.003
urin1 2707 0 9000 1927 1110 2955 1845 1357. 2192. 1525. 29.3 57.5
Argumentet type
har ovan specificerats till type="full", vilket resulterar i ovanstående parametrar. Argumentet har följande alternativ: "full", "common", "robust", "five_number", "mean_sd", "mean_se", "mean_ci", "median_iqr", "median_mad", "quantile", "mean", "median", "min", "max"
.
Janitor
Med janitor kan flexibla tabeller skapas. Vi börjar med en beskrivning av variabeln cat1 (sjukdomskategori):
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
cat1 n percent
ARF 2490 0.434176112
CHF 456 0.079511770
Cirrhosis 224 0.039058413
Colon Cancer 7 0.001220575
Coma 436 0.076024412
COPD 457 0.079686138
Lung Cancer 39 0.006800349
MOSF w/Malignancy 399 0.069572799
MOSF w/Sepsis 1227 0.213949433
Därefter lägger vi till variabeln sex, vilket resulterar i en korstabell:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
cat1 Female Male
ARF 1108 1382
CHF 143 313
Cirrhosis 81 143
Colon Cancer 5 2
Coma 230 206
COPD 208 249
Lung Cancer 12 27
MOSF w/Malignancy 190 209
MOSF w/Sepsis 566 661
Med janitors "adorn"-funktioner kan vi lägga till ytterligare information i tabellerna. Adorn funktioner kan kombineras. De är som följer:
Funktionens namn | Funktion |
---|---|
adorn_totals() | Lägger till total. Har argumentet where = som kan vara “row”, “col”, eller “both”. |
adorn_percentages() | Konverterar antal till proportioner. Har argumentet denominator = “row”, “col”, eller “all”. |
adorn_pct_formatting() | Konverterar proportioner till procent. |
adorn_rounding() | Avrundar decimalerna i proportioner. |
adorn_ns() | Lägger till antal i en tabell med proportioner eller procent. |
adorn_title() | Lägger till en rubrik på raderna och kolumnerna i korstabellen. |
Vi skapar du en korstabell med procentsiffror:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
cat1 Female Male Total
ARF 44.5% 55.5% 100.0%
CHF 31.4% 68.6% 100.0%
Cirrhosis 36.2% 63.8% 100.0%
Colon Cancer 71.4% 28.6% 100.0%
Coma 52.8% 47.2% 100.0%
COPD 45.5% 54.5% 100.0%
Lung Cancer 30.8% 69.2% 100.0%
MOSF w/Malignancy 47.6% 52.4% 100.0%
MOSF w/Sepsis 46.1% 53.9% 100.0%
Total 44.3% 55.7% 100.0%
Vi adderar nu antalet i tillägg till procentsiffror:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
Kön
Sjukdom Female Male
ARF 1108 (43.6%) 1382 (43.3%)
CHF 143 (5.6%) 313 (9.8%)
Cirrhosis 81 (3.2%) 143 (4.5%)
Colon Cancer 5 (0.2%) 2 (0.1%)
Coma 230 (9.0%) 206 (6.5%)
COPD 208 (8.2%) 249 (7.8%)
Lung Cancer 12 (0.5%) 27 (0.8%)
MOSF w/Malignancy 190 (7.5%) 209 (6.5%)
MOSF w/Sepsis 566 (22.3%) 661 (20.7%)
Total 2543 (100.0%) 3192 (100.0%)
Du kan spara tabellen direkt till Microsoft Word, Powerpoint, HTML eller som en bild med hjälp av paketet flextable, vars funktioner kan tillämpas direkt enligt följande exempel. Vi Funktionen save_as_docx()
sparar tabellen till Microsoft Word. Alternativt kan funktionerna save_as_html()
, save_as_word()
, save_as_ppt()
, eller save_as_image()
användas.
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
Crosstable
library(crosstable)
Vi skapar nu en korstabell för sex
och death
. Vi specificerar en speciell funktion för percent_pattern
(denna behöver du inte komma ihåg):
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
Som du märker resulterade funktionen inte i en korstabell vilket förklaras av att vi glömde argumentet by, vilket vi korrigerar nu:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
Funktionen kan användas för att inspektera alla variablerna stratifierat på exempelvis death
. För att inspektera alla variabler specificeras cols=everything()
:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
Figuren är avkortad.