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
::create_package("path/to/your/packageName") usethis
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)
<- function(a, b) {
add_numbers + b
a
}
# Dokumentation generieren
::document() devtools
Testen Ihres Pakets
Richten Sie Tests mit dem Paket testthat ein, um sicherzustellen, dass Ihr Paket korrekt funktioniert.
#| label: setup-tests
::use_testthat()
usethis
# Tests ausführen
::test() devtools
Erstellen und Prüfen des Pakets
Erstellen und überprüfen Sie Ihr Paket, um Fehler oder Warnungen zu erkennen.
#| label: build-check
::build()
devtools::check() devtools
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
::use_git()
usethis::use_github() usethis
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")
::build_site() pkgdown
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
Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.
Wiederverwendung
Zitat
@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}
}