Yet another R blog

Packages, Plots & eine Prise Python. Special guest: Mathematica

Seite 5 von 5

Installierte R-Packages auflisten

So behälst du den Überblick, welche Packages unter R installiert sind

Wer regelmäßig mit R arbeitet, installiert im Laufe der Zeit unzählige Packages. Um zu ermitteln, welche Packages in welcher Version derzeit installiert sind, dient der folgende Zweizeiler:

packinfo <- installed.packages()
packinfo[,c("Package", "Version")]

Um sich hingegen anzeigen zulassen, welche Packages von dem aktuellen Benutzer installiert worden sind, verwendet man

ip <- as.data.frame(installed.packages()[,c(1,3:4)])
rownames(ip) <- NULL
ip <- ip[is.na(ip$Priority),1:2,drop=FALSE]
print(ip, row.names=FALSE)

Installierte Packages samt Versionsnummern
Eine Liste sämtlicher verfügbarer R-Packages findet sich auf der Seite https://cran.r-project.org/. Es sind mittlerweile über 9000.

Zeichen in Strings entfernen

Sonderzeichen in Strings ändern oder entfernen

Häufig enthalten Strings in Data Frames unerwünschte Zeichen wie etwa das Euro-Zeichen €. Um dieses zu entfernen, bieten sich die R-Funktionen sub() und gsub() an. In der Klammer steht erst das oder die zu ersetzenden Zeichen, dann das neue Zeichen und schließlich der Vektor, der duchsucht werden soll. Letzteres kann auch eine Spalte in einem Data Frame sein.

value <- sub("\u20AC", "", x) # € entfernen

Dabei ersetzt sub() nur das als erstes vorkommende Zeichen, während gsub() alle ersetzt.

Factor in numeric umwandeln

So lässt sich ein factor in den Typ numeric ändern

R bietet keinen Befehl, um etwa in einem Data Frame eine Spalte mit Faktoren – Typ factor – in nummerische Werte (Typ numeric) umzuwandeln. Stattdessen ist der Umweg über character nötig. Um eine einzelne Spalte zu konvertieren, genügt der Befehl
df$x <- as.numeric(as.character(df$x))
Wenn mehrere Spalten betroffen sind, verwendet man

indx <- sapply(df, is.factor)
df[indx] <- lapply(df[indx], 
    function(x) as.numeric(as.character(x)))

Magische Quadrate mit R

Einfach magisch

Magische Quadrate der Kantenlänge n haben eine quadratische Anordnung der Zahlen 1 bis n sodass die Summe der Zahlen in allen Zeilen, Spalten und Diagonalen gleich ist. Diese Summe bezeichnet man auch als magische Zahl.

Ein solches magisches Quadrat etwa mit der Kantenlänge 10 von Hand zu erstellen, ist nicht trivial (siehe auch Wikipedia-Artikel). In der R-Package matlab ist eine Funktion enthalten, die magische Quadrate mit einer beliebigen Kantenlänge erstellt. Nach der Installation von matlab mittels install.packages("matlab") erzeugt

library(matlab)
(magie <- magic(10))

ein magisches Quadrat der Kantenlänge 10. Die magische Zahl lässt sich dann mit rowSums(magie) anzeigen. In diesem Beispiel ist es die Zahl 505.

    92   99    1    8   15   67   74   51   58    40
    98   80    7   14   16   73   55   57   64    41
     4   81   88   20   22   54   56   63   70    47
    85   87   19   21    3   60   62   69   71    28
    86   93   25    2    9   61   68   75   52    34
    17   24   76   83   90   42   49   26   33    65
    23    5   82   89   91   48   30   32   39    66
    79    6   13   95   97   29   31   38   45    72
    10   12   94   96   78   35   37   44   46    53
    11   18  100   77   84   36   43   50   27    59

Neuere Beiträge »