Metacore și Metatools 0.2.0 | R-BLOGGERS

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Blog farmaceutși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.


Ce este nou în Metacore?

Scopul versiunii 0.2.0 a fost să clarifice distincția dintre un specificație Metacore importat, care conține informații despre mai multe seturi de date și un specificație subsetată care conține informații despre un singur set de date (așa cum este obținut prin intermediul Metacore :: SELECT_DATASET () )

Acum, un obiect Metacore care are mai multe seturi de date sau unul cu un singur set de date a fost reproiectat pentru a fi distinct programatic, cu un singur set de date implementat ca subclasa Metacore numită „DataSetmeta”.

Declarațiile de tipărire ale obiectelor metacore combinate și subsetate au fost rafinate pentru a ilustra mai bine diferențele dintre acestea și pentru a oferi informații mai utile utilizatorului.

library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(metacore)
library(metatools)
library(tibble)
library(haven)

load(metacore_example("pilot_ADaM.rda"))
metacore
── Metacore object contains metadata for 5 datasets ────────────────────────────
→ ADSL (Subject-Level Analysis Dataset)
→ ADADAS (ADAS-Cog Analysis)
→ ADLBC (Analysis Dataset Lab Blood Chemistry)
→ ADTTE (AE Time To 1st Derm. Event Analysis)
→ ADAE (Adverse Events Analysis Dataset)
ℹ To use the Metacore object with metatools package, first subset a dataset using `metacore::select_dataset()`

Metacore :: SELECT_DATASET () Funcția este acum explicită cu privire la ceea ce este selectat:

adsl_spec <- select_dataset(metacore, "ADSL", quiet = TRUE)
✔ ADSL dataset successfully selected
ℹ Dataset metadata specification subsetted with suppressed warnings

Tipărirea obiectului subsetat oferă acum informații mai detaliate:

adsl_spec
── Dataset specification object for ADSL (Subject-Level Analysis Dataset) ──────
The dataset contains 51 variables
The structure of the specification object is:
→ codelist: character (16 x 4) code_id, name, type, codes
→ derivations: character (50 x 2) derivation_id derivation
→ ds_spec: character (1 x 3) dataset, structure, label
→ ds_vars: character (51 x 7) dataset, variable, key_seq, order, keep, core,
  supp_flag
→ supp: character (0 x 4) dataset, variable, idvar, qeval
→ value_spec: character (51 x 8) dataset, variable, code_id, derivation_id,
  type, origin, where, sig_dig
→ var_spec: character (51 x 6) variable, type, length, label, format, common
To inspect the specification object use `View()` in the console.

Funcțiile care iau un obiect Metacore ca intrare vor emite un mesaj util dacă un obiect subsetat nu este furnizat.

ds_list <- list(DM = read_xpt(metatools_example("dm.xpt")))
create_var_from_codelist(data.frame(), metacore)
Error in `verify_DatasetMeta()`:
! The object supplied to the argument `metacore` is not a subsetted
  Metacore object. Use `metacore::select_dataset()` to subset metadata for the
  required dataset.

create_var_from_codelist()

Metatools :: create_var_from_codelist () Acum, opțional, permite utilizatorului să specifice un codeList din care ar trebui generată noua coloană. Acest lucru este util în situații precum cea de mai jos în care utilizatorul încearcă să obțină PARAM din PARAMCD Dar codeList -ul pentru out_var (PARAM) nu conține valorile PARAMCD.

Param 1 Alanină aminotransferază Alanină aminotransferază
Param 2 Bilirubină Bilirubină
Param 3 Creatină Creatină

Exemplu de utilizare implicită care nu oferă rezultatul corect:

adlbc_spec <- suppressMessages(select_dataset(metacore, "ADLBC", quiet = TRUE))
data <- tibble(PARAMCD = c("ALB", "ALP", "ALT"))
create_var_from_codelist(data, adlbc_spec, input_var = PARAMCD, out_var = PARAM, strict = FALSE)
# A tibble: 3 × 2
  PARAMCD PARAM
     
1 ALB      
2 ALP      
3 ALT      

În mod implicit, Metatools :: create_var_from_codelist () ia codeList -ul out_var ca intrare. Utilizatorul poate suprascrie acum această implicită cu un specific codeList (în acest caz PARAMCD mai jos) pentru a obține rezultatul dorit.

Paramcd 1 Alt Alanină aminotransferază
Paramcd 2 Bili Bilirubină
Paramcd 3 Creat Creatină
create_var_from_codelist(data, adlbc_spec, input_var = PARAMCD, out_var = PARAM, codelist = get_control_term(adlbc_spec, PARAMCD), decode_to_code = FALSE)
# A tibble: 3 × 2
  PARAMCD PARAM                         
                              
1 ALB     Albumin (g/L)                 
2 ALP     Alkaline Phosphatase (U/L)    
3 ALT     Alanine Aminotransferase (U/L)

Această funcție oferă și o nouă opțiune strictcare atunci când este setat pe TRUE (implicit) va emite un avertisment care indică orice valori din coloana dvs. de intrare care nu apar în codeList.

data <- tibble(PARAMCD = c("ALB", "ALP", "ALT", "DUMMY1", "DUMMY2"))
x <- create_var_from_codelist(data, adlbc_spec, input_var = PARAMCD, out_var = PARAM, codelist = get_control_term(adlbc_spec, PARAMCD), decode_to_code = FALSE, strict = TRUE)
Warning: In `create_var_from_codelist()`: The following values present in the input
dataset are not present in the codelist: DUMMY1 and DUMMY2

create_cat_var ()

Metatools :: create_cat_var () a fost actualizat astfel încât utilizatorii să poată specifica acum să creeze o nouă variabilă din code sau decode Coloana terminologiei controlate. Anterior, o configurare codedelistă ca cea de mai jos ar fi evaluată de la code Numai coloana, lăsând textul „ani” din noua variabilă.

Exemplu de codeList pentru Agegr2
Agegr2 Grupa de vârstă combinată 2 text 1 <35 <35 de ani
Agegr2 Grupa de vârstă combinată 2 text 2 35-49 35-49 ani
Agegr2 Grupa de vârstă combinată 2 text 3 > = 50 > = 50 de ani

Acum, specificând opțiunea create_from_decode = TRUE Vă va permite să creați variabila pe baza textului din decode coloană. Dacă utilizați această opțiune pentru a crea și o variabilă codificată numerică (în acest caz AGEGR2N), asigurați -vă că CT -ul dvs. este configurat astfel încât decode Coloanele se potrivesc.

dm <- read_xpt(metatools_example("dm.xpt"))
create_cat_var(dm, adsl_spec, AGE, AGEGR2, AGEGR2N, create_from_decode = TRUE) %>%
  select(USUBJID, AGE, AGEGR2, AGEGR2N) %>%
  head(5)
# A tibble: 5 × 4
  USUBJID       AGE AGEGR2      AGEGR2N
                   
1 01-701-1015    63 18-64 years       1
2 01-701-1023    64 18-64 years       1
3 01-701-1028    71 65-80 years       2
4 01-701-1033    74 65-80 years       2
5 01-701-1034    77 65-80 years       2

Această funcție oferă acum și un implicit strict = TRUE Opțiune, care emite un mesaj de avertizare dacă există valori în coloana de referință care nu se încadrează în categoriile din terminologia controlată. Acest lucru poate fi dezactivat cu strict = FALSE.

dm2 <- dm |>
  tibble::add_row(AGE = 15) |>
  tibble::add_row(AGE = 16)
x <- create_cat_var(dm2, adsl_spec, AGE, AGEGR2, create_from_decode = TRUE)
Warning: There are 2 observations in AGE that do not fit into the provided categories
for AGEGR2. Please check your controlled terminology.

Rezumatul altor schimbări

  • S -a rezolvat o eroare în care prezența variabilelor cu VLM în value_spec Tabelul ar preveni variabile cu același nume în seturi de date diferite populate în value_spec masă.

  • MetaTools :: Build_From_Derved () adaugă noi opțiuni pentru keep parametrul care permit utilizatorilor să obțină all sau numai prerequisite Coloane din seturi de date sursă. Mulțumesc lui Matt Bearham pentru acest amendament!

  • MetaTools :: Combine_supp () acum adaugă eticheta găsită în QLABEL la QNAM Coloane care sunt derivate din seturi de date suplimentare. Mulțumesc lui Bill Denney pentru acest amendament!

  • Metatools :: Check_variables () Acum oferă un strict opțiunea care va emite un avertisment mai degrabă decât să arunce o eroare când strict = FALSE.

  • {Cli} Ieșirea este acum utilizată atât în ambele pachete, cât și mesageria pentru diverse funcții a fost îmbunătățită.

Ce urmează?

Următorul pas pentru ambele pachete va fi să funcționeze și să închidă problemele din întârziere, actualizând exemplele și vinietele și îmbunătățind experiența utilizatorului prin mesagerie mai informativă.

Pentru {Metacore} a existat un anumit interes pentru o UI pentru a ajuta utilizatorii să scrie cititori de specificații personalizate pentru specificații care nu sunt în formatul standard P21. Deci, acest lucru va fi explorat și el.

Mulțumesc pentru lectură!


Ultima actualizare

2025-08-07 01: 11: 34.287895

Detalii

Reutilizați

Citare

Citarea Bibtex:

@online{hobby2025,
  author = {Hobby, Liam},
  title = {Metacore and {Metatools} 0.2.0},
  date = {2025-08-04},
  url = {https://pharmaverse.github.io/blog/posts/2025-08-04_metacore_0.2.0/metacore_0.2.0.html},
  langid = {en}
}

Pentru atribuire, vă rugăm să citați această lucrare ca:

Hobby, Liam. 2025. „Metacore și metatools 0.2.0.” 4 august 2025.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.