Entwickeln und Veröffentlichen von R-Paketen

Ein umfassender Leitfaden zum Erstellen, Verwalten und Weitergeben von R-Code

Lernen Sie den kompletten Prozess der Entwicklung, Dokumentation, Prüfung, Wartung und Veröffentlichung von R-Paketen kennen. Dieses erweiterte Handbuch behandelt wichtige Werkzeuge wie devtools, roxygen2, usethis und pkgdown sowie kontinuierliche Integration, fortgeschrittene Designstrategien und Tipps zur Fehlerbehebung.

Programmierung
Autor:in
Zugehörigkeit
Veröffentlichungsdatum

10. Februar 2024

Geändert

29. April 2025

Schlüsselwörter

R-Paketentwicklung, R-Pakete veröffentlichen, R-Paket-Tutorial, R-Pakete erstellen, devtools, roxygen2, pkgdown, Kontinuierliche Integration R

Einführung

R-Pakete sind eine leistungsstarke Möglichkeit, Ihren R-Code, Ihre Daten und Ihre Dokumentation in einem wiederverwendbaren Format zu bündeln. In diesem umfassenden Handbuch lernen Sie den kompletten Arbeitsablauf zum Erstellen, Dokumentieren, Testen, Warten und Veröffentlichen von R-Paketen kennen. Unabhängig davon, ob Sie Ihre Arbeit auf CRAN, GitHub oder anderen Plattformen zur Verfügung stellen wollen, ist die Beherrschung dieser Techniken eine wesentliche Voraussetzung, um zum R-Ökosystem beizutragen.



Einrichten der Entwicklungsumgebung für Ihr Paket

Bevor Sie beginnen, stellen Sie sicher, dass Sie die notwendigen Werkzeuge installiert haben. Die Pakete devtools, usethis und roxygen2 sind grundlegend für die moderne Paketentwicklung.

#| label: install-packaging-tools
install.packages(c("devtools", "usethis", "roxygen2"))
library(devtools)
library(usethis)
library(roxygen2)

Erstellen einer Paketstruktur

Verwenden Sie usethis, um ein neues Paketskelett zu erstellen. Dieser Befehl richtet eine grundlegende Verzeichnisstruktur mit Ordnern für R-Code, Dokumentation, Tests und mehr ein.

#| label: create-package
usethis::create_package("path/to/your/packageName")

Dokumentieren Sie Ihr Paket mit roxygen2

Dokumentation ist entscheidend. Verwenden Sie roxygen2, um Inline-Dokumentation zu schreiben, die automatisch in Hilfedateien umgewandelt wird.

#| label: document-example
#' Add Two Numbers
#'
#' This function adds two numeric values.
#'
#' @param a A numeric value.
#' @param b A numeric value.
#' @return The sum of a and b.
#' @examples
#' add_numbers(3, 5)
add_numbers <- function(a, b) {
  a + b
}

# Dokumentation generieren
devtools::document()

Testen Ihres Pakets

Richten Sie Tests mit dem Paket testthat ein, um sicherzustellen, dass Ihr Paket korrekt funktioniert.

#| label: setup-tests
usethis::use_testthat()

# Tests ausführen
devtools::test()

Erstellen und Prüfen des Pakets

Erstellen und überprüfen Sie Ihr Paket, um Fehler oder Warnungen zu erkennen.

#| label: build-check
devtools::build()
devtools::check()

Ihr Paket veröffentlichen

Veröffentlichen auf CRAN

Befolgen Sie die CRAN-Richtlinien und verwenden Sie devtools::release(), um Ihr Paket zur Überprüfung durch CRAN einzureichen.

Freigabe auf GitHub

Alternativ können Sie Ihr Paket auf GitHub veröffentlichen, um kontinuierliche Aktualisierungen und Beiträge der Gemeinschaft zu erhalten.

#| label: publish-github
usethis::use_git()
usethis::use_github()

Pflege und Aktualisierung Ihres Pakets

Nach der Veröffentlichung ist es wichtig, Ihr Paket auf dem neuesten Stand zu halten:

  • Versionskontrolle:
    Verwenden Sie semantische Versionierung, um Änderungen zu verfolgen. Aktualisieren Sie Ihre Paketversion und dokumentieren Sie Änderungen in einer NEWS-Datei.

  • Fehlerkorrekturen und Erweiterungen:
    Aktualisieren Sie Ihr Paket regelmäßig auf der Grundlage von Benutzerfeedback und Änderungen in den Abhängigkeiten.

  • Aktualisierungen der Dokumentation:
    Stellen Sie sicher, dass Ihre Dokumentation aktuell bleibt, wenn sich Ihr Paket weiterentwickelt.

Automatisierte Dokumentation und Website-Erstellung

Das Erstellen einer Website für Ihr Paket mit pkgdown kann Ihre Dokumentation leichter zugänglich machen.

#| label: pkgdown-setup
install.packages("pkgdown")
pkgdown::build_site()

Dadurch wird eine statische Website für Ihr Paket erstellt, die es den Benutzern erleichtert, die Dokumentation und Beispiele zu erkunden.

Kontinuierliche Integration (CI) für R-Pakete

Das Einrichten von CI/CD-Pipelines hilft, die Qualität Ihres Pakets im Laufe der Zeit zu erhalten. Verwenden Sie Werkzeuge wie GitHub Actions oder Travis CI, um bei jeder Übergabe automatisch Tests auszuführen und Ihr Paket zu erstellen.

Beispiel: GitHub-Aktionen Arbeitsablauf

Erstellen Sie eine Datei .github/workflows/R-CMD-check.yaml mit dem folgenden Inhalt:

name: R-CMD-check

on: [push, pull_request]

jobs:
  R-CMD-check:
    runs-on: ubuntu-latest
    container:
      image: rstudio/r-base:4.1.0
    steps:
      - uses: actions/checkout@v2
      - name: Set up R
        uses: r-lib/actions/setup-r@v2
      - name: Install dependencies
        run: Rscript -e 'install.packages(c("devtools", "roxygen2", "testthat"))'
      - name: Check package
        run: R CMD check .

Dieser Arbeitsablauf prüft Ihr Paket bei jedem Push- oder Pull-Request automatisch auf Fehler und Warnungen.

Fortgeschrittenes Paketdesign

Für komplexere Projekte sollten Sie in Erwägung ziehen, Ihr Paket unter Verwendung der S3- oder S4-Objektsysteme von R zu erstellen:

  • S3-Klassen:
    Bieten Sie einen einfachen, flexiblen Weg zur Implementierung objektorientierter Programmierung in R.

  • S4-Klassen:
    Bieten Sie formale Klassendefinitionen und Validierung an, was für robustere, größere Projekte nützlich ist.

Erfahren Sie mehr über diese Systeme in speziellen Tutorials oder in der offiziellen R-Dokumentation.

Häufige Fallstricke und Fehlerbehebung

  • Probleme mit der Dokumentation:
    Stellen Sie sicher, dass alle Funktionen korrekt mit roxygen2 dokumentiert sind, um fehlende Hilfedateien zu vermeiden.

  • Namespace-Konflikte:
    Seien Sie vorsichtig bei der Benennung von Funktionen und Variablen, um Konflikte mit bestehenden Paketen zu vermeiden.

  • Verwaltung von Abhängigkeiten:
    Aktualisieren Sie regelmäßig Ihre Paketabhängigkeiten und stellen Sie die Kompatibilität mit neueren Versionen von R sicher.

  • Fehlerbehandlung:
    Verwenden Sie eine umfassende Fehlerbehandlung und -protokollierung innerhalb Ihres Pakets, um die Fehlersuche und Benutzerunterstützung zu erleichtern.

Schlussfolgerung

Die Entwicklung und Veröffentlichung von R-Paketen ist ein lohnender Prozess, der es Ihnen ermöglicht, Ihren Code mit anderen zu teilen und einen Beitrag zur R-Gemeinschaft zu leisten. Wenn Sie sich an die Best Practices halten - von der Einrichtung Ihrer Umgebung und der Dokumentation Ihres Codes bis hin zum Testen, der Wartung und der Veröffentlichung Ihres Pakets - können Sie robuste, wiederverwendbare Pakete erstellen. Dieses umfassende Handbuch mit zusätzlichen Abschnitten über automatisierte Dokumentation, kontinuierliche Integration und fortgeschrittenes Paketdesign bietet alle Werkzeuge, die Sie für den Erfolg benötigen.

Weiterführende Literatur

Viel Spaß beim Kodieren und beim Entwickeln und Veröffentlichen Ihrer R-Pakete!

Weitere Artikel erkunden

Hinweis

Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.

placeholder

placeholder
Keine Treffer
Zurück nach oben

Wiederverwendung

Zitat

Mit BibTeX zitieren:
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Entwickeln und Veröffentlichen von R-Paketen},
  date = {2024-02-10},
  url = {https://www.datanovia.com/de/learn/programming/r/advanced/developing-and-publishing-r-packages.html},
  langid = {de}
}
Bitte zitieren Sie diese Arbeit als:
Kassambara, Alboukadel. 2024. “Entwickeln und Veröffentlichen von R-Paketen.” February 10, 2024. https://www.datanovia.com/de/learn/programming/r/advanced/developing-and-publishing-r-packages.html.