Cinci sfaturi pentru a-ți gestiona universul R 🚀

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

(Acest articol a fost publicat pentru prima dată pe R | Dr Tom Palmerși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Introducere

Sistemul R-universe al rOpenSci este o platformă open source care permite utilizatorilor să-și creeze propriul univers de pachete R asemănător CRAN.

Este greu de exagerat cât de util este acest lucru. Pentru prima dată, cercetătorii nu numai că au o listă a pachetelor de randomizare mendeliană într-un singur loc, dar pot instala fișiere binare – fără a fi nevoiți să treacă prin bătăi de cap – în special pe Linux (Ubuntu) – de remotes::install_github(). Cercetătorii pot vedea, de asemenea, cât de des sunt actualizate pachetele și R-universe verifică modificările în pachete aproximativ la fiecare oră, menținându-le mereu la zi.

Această postare oferă cinci sfaturi pe care le-am dezvoltat pentru a ajuta la gestionarea universului meu R.

Sfat 1: referire la un pachet dintr-o cerere de tragere în loc de la o ramură de pe o furcă

  {
    "package": "GWASBrewer",
    "url": "https://github.com/jean997/GWASBrewer",
    "branch": "refs/pull/18/head"
  },

Trec înapoi la ramura implicită dacă PR-ul este fuzionat.

Sfat 2: Justfile rețetă pentru adăugarea unui pachet la packages.json

În mod regulat, constat că trebuie să adaug sau să elimin un pachet. Editarea manuală a packages.json fișierul nu este greu, dar am găsit următoarele rețete Justfile (doar este ca Make, dar special conceput pentru rularea comenzilor și are o sintaxă mult mai prietenoasă) utile pentru a face acest lucru rapid.

Aceste rețete necesită UV și doar să fie instalate și pe dvs PATH (uv instalează automat versiunea necesară de Python și creează/distruge/gestionează orice medii virtuale necesare). Pentru a le utiliza, copiați-le într-un fișier text numit justfile la nivelul superior al depozitului dvs. de registry R-universe și urmați instrucțiunile.

Această rețetă adaugă un pachet la dvs packages.json în ordine alfabetică. Are un argument obligatoriu și 3 argumente opționale.

# add a package entry to packages.json in alphabetical order
(arg("branch", short="b"))
(arg("pkgname", short="p"))
(arg("subdir", short="s"))
add url pkgname="" branch="" subdir="":
    #!/usr/bin/env -S uv run --python 3.14 python3
    import json, re, sys
    url = "{{ url }}"
    if re.fullmatch(r'(^/)+/(^/)+', url):
        url = f"https://github.com/{url}"
    pkgname = "{{ pkgname }}" or url.rstrip("/").split("/")(-1)
    branch = "{{ branch }}"
    subdir = "{{ subdir }}"
    with open("packages.json") as f:
        packages = json.load(f)
    if any(p("package") == pkgname for p in packages):
        print(f"Error: '{pkgname}' already exists in packages.json", file=sys.stderr)
        sys.exit(1)
    entry = {"package": pkgname, "url": url}
    if branch:
        entry("branch") = branch
    if subdir:
        entry("subdir") = subdir
    packages.append(entry)
    packages.sort(key=lambda p: p("package").lower())
    with open("packages.json", "w") as f:
        json.dump(packages, f, indent=2)
        f.write("n")
    print(f"Added {pkgname}")
just add username/reponame

Puteți inspecta argumentele și opțiunile rețetei cu

just --usage add

Usage: just add (OPTIONS) url

Arguments:
  url

Options:
  -p pkgname (default: "")
  -b branch (default: "")
  -s subdir (default: "")
just add username/reponame -p pkgname

Sfat 3: Justfile rețetă pentru eliminarea unui pachet din packages.json

Această rețetă elimină un pachet din dvs packages.json.

# remove a package entry from packages.json
remove pkgname:
    #!/usr/bin/env -S uv run --python 3.14 python3
    import json, sys
    pkgname = "{{ pkgname }}"
    with open("packages.json") as f:
        packages = json.load(f)
    filtered = (p for p in packages if p("package") != pkgname)
    if len(filtered) == len(packages):
        print(f"Error: '{pkgname}' not found in packages.json", file=sys.stderr)
        sys.exit(1)
    with open("packages.json", "w") as f:
        json.dump(filtered, f, indent=2)
        f.write("n")
    print(f"Removed {pkgname}")

Rulați-l cu

just remove pkgname

Sfat 4: Rețeta Justfile pentru verificarea packages.json este validă

Când editați manual packages.json este foarte ușor să uiți o virgulă sau să ratezi o paranteză de închidere sau ghilimele. Această rețetă verifică că JSON este valid.

# check packages.json
check:
    uv run --python 3.14 -m json.tool packages.json > /dev/null && echo "JSON check passed"

Rulați-l cu

just check

Sfat 5: vizualizați convenabil dependențele unui pachet

Cunoașterea listei complete de dependențe puternice a unui pachet este utilă – de exemplu, atunci când o schimbare întreruptă undeva în lanț provoacă eșecuri neașteptate de construire. Deși există mai multe moduri de a determina acest lucru în R, R-universe vă arată imediat lista completă.

Navigați la pagina R-universe pentru pachetul care vă interesează, spuneți https://mrcieu.r-universe.dev/TwoSampleMR și faceți clic pe pilula de dependențe.

Captură de ecran cu trecerea mouse-ului peste pilula de dependențe pe o pagină de pachet R-universe.

Se extinde arătând lista completă de dependențe.

Captură de ecran cu extinderea pilulei de dependențe pe o pagină de pachet R-universe.Captură de ecran cu extinderea pilulei de dependențe pe o pagină de pachet R-universe.

Rezumat

Pe scurt, am arătat cinci sfaturi pe care le consider utile pentru a gestiona un univers R mare.

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.