Gå till index

Lilla Forskarskolan: Forskningsmetoder och Analys med R

0% färdig
0/0 Steps
  1. Analys och forskning med R och Posit (Rstudio)
  2. Grunderna i R och Rstudio
    7 Ämnen
  3. Importera, exportera, spara och ladda data
    5 Ämnen
  4. Strängar och regular expressions (regex)
    1 Ämne
  5. Bearbetning av data med dplyr
    12 Ämnen
  6. Visualisera och presentera
    14 Ämnen
  7. Explorerande och deskriptiva analyser
    6 Ämnen
  8. Prediktionsmodeller
    12 Ämnen
  9. Klassisk regressionsanalys
    8 Ämnen
  10. Machine learning (ML) och Artificiell Intelligens (AI)
    9 Ämnen
  11. Skapa prediktionsmodeller med Tidymodels
    6 Ämnen
  12. Hypotestester och epidemiologiska mått
    5 Ämnen
Avsnitt Progress
0% färdig

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:

R
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():

R
table(rhc$sex)
Resultat
Female   Male 
  2543   3192 

En korstabell skapas som följer:

R
table(rhc$sex, rhc$death)
Resultat
           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:

R
table(rhc$sex, rhc$death, rhc$ca)
Resultat
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:

R
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.


R
# 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.


Resultat
              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.


Resultat
              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 namnFunktion
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.


Resultat
              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.


Resultat
                             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

R
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.