Nicht wirklich gute Praxis, aber manchmal ein willkommener Strohhalm.
Nicht wirklich gute Praxis, aber manchmal ein willkommener Strohhalm.
Also in apply(X = df, MARGIN = 2, FUN = mean) wäre es mean, was ich meine.
Also in apply(X = df, MARGIN = 2, FUN = mean) wäre es mean, was ich meine.
Weihnachtsbaum für R:
plot(c(0:15), c(0:15), col = "white")
polygon(x = c(7,2,5.5,3,6,4,7,10,8,11,8.5,12), y = c(1,1,3,3,5,5,7,5,5, 3,3,1), col = "darkgreen")
points(x = c(4,10,7,5,8,6,7), y = c(2,1.5,3,3.5,4.5,5.5,6), pch = 16, cex = 2, col = "darkred")
Weihnachtsbaum für R:
plot(c(0:15), c(0:15), col = "white")
polygon(x = c(7,2,5.5,3,6,4,7,10,8,11,8.5,12), y = c(1,1,3,3,5,5,7,5,5, 3,3,1), col = "darkgreen")
points(x = c(4,10,7,5,8,6,7), y = c(2,1.5,3,3.5,4.5,5.5,6), pch = 16, cex = 2, col = "darkred")
Geschweifte Klammern kann man oft weglassen.
Anstatt
if (1 < 2) { print("so isses")}
funktioniert auch
if (1 < 2 ) print("so isses")
Ob das aber eine gute Idee ist, steht auf einem ganz anderne Blatt.
Ich denke: Nein.
Geschweifte Klammern kann man oft weglassen.
Anstatt
if (1 < 2) { print("so isses")}
funktioniert auch
if (1 < 2 ) print("so isses")
Ob das aber eine gute Idee ist, steht auf einem ganz anderne Blatt.
Ich denke: Nein.
Mit
cat("\14")
kann man den gesamten Inhalt des Konsolenfensters löschen.
Richtig am Anfang eines Schleifenblocks eingesetzt kann man so die Ausgabe sauber halten, um bei länger laufenden Programmen Nutzern anzuzeigen, wie weit das Programm schon ist.
Mit
cat("\14")
kann man den gesamten Inhalt des Konsolenfensters löschen.
Richtig am Anfang eines Schleifenblocks eingesetzt kann man so die Ausgabe sauber halten, um bei länger laufenden Programmen Nutzern anzuzeigen, wie weit das Programm schon ist.
Mit den Funktionen
"message",
"warning" und
"stop"
kann man Nutzern der eigenen Programme etwas deutlicher oder zielgerichteter Rückmeldung geben als durch Standard-Fehlermeldungen oder ein generisches print().
Mit den Funktionen
"message",
"warning" und
"stop"
kann man Nutzern der eigenen Programme etwas deutlicher oder zielgerichteter Rückmeldung geben als durch Standard-Fehlermeldungen oder ein generisches print().
Es gibt viele Wege, wie man R-Ergebnisse per Web zur Verfügung stellen kann - nicht nur das schwergewichtige Shiny.
Ein Weg ist das Paket "plumber", das mit wenig Code aus R-Funktionen Web-APIs macht.
Dazu muss man sich natürlich ins Thema APIs einarbeiten.
Es gibt viele Wege, wie man R-Ergebnisse per Web zur Verfügung stellen kann - nicht nur das schwergewichtige Shiny.
Ein Weg ist das Paket "plumber", das mit wenig Code aus R-Funktionen Web-APIs macht.
Dazu muss man sich natürlich ins Thema APIs einarbeiten.
Fun Fact:
Division durch Null ergibt in R keinen Fehler, sondern undendlich (Inf) .
Fun Fact:
Division durch Null ergibt in R keinen Fehler, sondern undendlich (Inf) .
Um für ein R-Programm eine grafische Oberfläche zu bauen, steht neben Shiny auch das gute alte Desktop-Grafikpaket Tk zur Verfügung:
library(tcltk)
Eine Einführung gibt's hier:
www.stat.berkeley.edu/~spector/s24...
Um für ein R-Programm eine grafische Oberfläche zu bauen, steht neben Shiny auch das gute alte Desktop-Grafikpaket Tk zur Verfügung:
library(tcltk)
Eine Einführung gibt's hier:
www.stat.berkeley.edu/~spector/s24...
Mit der Funktion "unclass" lässt sich - ratet mal - die Klasse von einem Objekt entfernen. unclass(df) macht zum Beispiel aus dem Dataframe df wieder eine gewöhnliche Liste.
Mit der Funktion "unclass" lässt sich - ratet mal - die Klasse von einem Objekt entfernen. unclass(df) macht zum Beispiel aus dem Dataframe df wieder eine gewöhnliche Liste.
Mit der Funktion "menu" lassen sich Multiple-Choice-Fragen aufrufen. Richtig mit einer Liste aus Fragen und Antwortmöglichkeiten sowie einem Export verbunden kann man so in R einen Fragebogenbogen erstellen und ihn auch von Probanden ausfüllen lassen.
Mit der Funktion "menu" lassen sich Multiple-Choice-Fragen aufrufen. Richtig mit einer Liste aus Fragen und Antwortmöglichkeiten sowie einem Export verbunden kann man so in R einen Fragebogenbogen erstellen und ihn auch von Probanden ausfüllen lassen.
Mit dem Paket "clipr" kann man sehr bequem Inhalte aus der System-Zwischenablage holen oder dahin senden:
clipr::read_clip und clipr::write_clip sind die entsprechenden Funktionen.
Mit dem Paket "clipr" kann man sehr bequem Inhalte aus der System-Zwischenablage holen oder dahin senden:
clipr::read_clip und clipr::write_clip sind die entsprechenden Funktionen.
Wenn ein Plot aktiv ist, kann man die Funktion "locator" nutzen, um die x-y-Koordinaten von Mausklicks im Plot abzufragen.
Locator läuft bis zu einem bestimmten Maximum an Klicks oder bis sie z.B. mit der Escape-Taste unterbrochen wird.
Wozu das? Egal - cool!
Wenn ein Plot aktiv ist, kann man die Funktion "locator" nutzen, um die x-y-Koordinaten von Mausklicks im Plot abzufragen.
Locator läuft bis zu einem bestimmten Maximum an Klicks oder bis sie z.B. mit der Escape-Taste unterbrochen wird.
Wozu das? Egal - cool!
Mit "sub" kann man in R suchen und ersetzen.
Achtung: Die Funktion sucht auch nach Mustern. Deshalb ist es bei manchen Zeichen nötig, sie zu Escapen.
In Währungsdaten den englischen Punkt durch ein deutsches Komma zu ersetzen, geht z.B. so:
sub("\\.", ",", 3.45)
Mit "sub" kann man in R suchen und ersetzen.
Achtung: Die Funktion sucht auch nach Mustern. Deshalb ist es bei manchen Zeichen nötig, sie zu Escapen.
In Währungsdaten den englischen Punkt durch ein deutsches Komma zu ersetzen, geht z.B. so:
sub("\\.", ",", 3.45)
Mit "any" kann man prüfen, ob mindestens ein Wert in einer Reihe eine Bedingung erfüllt. Die Funktion gibt einen einzigen Wahrheitswert zurück; ist also schön übersichtlich, wenn mehr Information nicht gebraucht wird.
any( c(1,sehr 2, 3, 4, 5) > 3 ) ergibt TRUE.
Mit "any" kann man prüfen, ob mindestens ein Wert in einer Reihe eine Bedingung erfüllt. Die Funktion gibt einen einzigen Wahrheitswert zurück; ist also schön übersichtlich, wenn mehr Information nicht gebraucht wird.
any( c(1,sehr 2, 3, 4, 5) > 3 ) ergibt TRUE.
Wer Hash-Werte (z.B. für Passwörter) braucht, kann sie mit dem digest-Paket erstellen.
Beispiel:
digest::digest("statistik") ergibt "72a6f6b2ee18765b38d4fcc6cc02ba71" .
Achtung: Default ist der meines Wissens für Sicherheitszwecke veraltete MD5-Algorithmus.
Wer Hash-Werte (z.B. für Passwörter) braucht, kann sie mit dem digest-Paket erstellen.
Beispiel:
digest::digest("statistik") ergibt "72a6f6b2ee18765b38d4fcc6cc02ba71" .
Achtung: Default ist der meines Wissens für Sicherheitszwecke veraltete MD5-Algorithmus.
Mit Hilfe von RSQLite (im Paket DBI mit enthalten) kann man durch reinen R-Code ohne zusätzliche Software eine SQLite-Datenbank erstellen, bearbeiten und abfragen.
So lassen sich in einem Projekt die Stärken von R und SQL kombinieren.
Mit Hilfe von RSQLite (im Paket DBI mit enthalten) kann man durch reinen R-Code ohne zusätzliche Software eine SQLite-Datenbank erstellen, bearbeiten und abfragen.
So lassen sich in einem Projekt die Stärken von R und SQL kombinieren.
In RStudio gibt es die Multicursor-Funktion: Mit Strg+Alt gedrückt kann man Cursor an verschiedenen Stellen setzen und so eine Tastatureingabe an mehreren Stellen im Code gleichzeitig durchführen.
Praktisch um z.B. lange Datensatzbeschreibungen zu bearbeiten.
In RStudio gibt es die Multicursor-Funktion: Mit Strg+Alt gedrückt kann man Cursor an verschiedenen Stellen setzen und so eine Tastatureingabe an mehreren Stellen im Code gleichzeitig durchführen.
Praktisch um z.B. lange Datensatzbeschreibungen zu bearbeiten.
Mit file.choose lässt sich aus einem R-Programm heraus ein Dateiauswahl-Dialog anzeigen.
So kann gerade bei Programmen, die nicht nur vom Autor selbst genutzt werden, die oft so problematische Pfadangabe zur einzulesenden Datei gespart werden.
Mit file.choose lässt sich aus einem R-Programm heraus ein Dateiauswahl-Dialog anzeigen.
So kann gerade bei Programmen, die nicht nur vom Autor selbst genutzt werden, die oft so problematische Pfadangabe zur einzulesenden Datei gespart werden.
Hier eine einfache Karte zum Thema Weihnachten, die ich mit Hilfe der Pakete ggplot2 und sf und einem Shapefile von Deutschland erstellt habe.
Quellen:
bvwe.de/landesverbae...
gdz.bkg.bund.de/index.php/de...
Hier eine einfache Karte zum Thema Weihnachten, die ich mit Hilfe der Pakete ggplot2 und sf und einem Shapefile von Deutschland erstellt habe.
Quellen:
bvwe.de/landesverbae...
gdz.bkg.bund.de/index.php/de...
Mit der Funktion
source
könnt ihr aus einem R-Skript A ein anderes R-Skript B aufrufen und ausführen - sehr hilfreich, um bei größeren Projekten den Überblick zu behalten oder Entwicklungsarbeit aufzuteilen.
Mit der Funktion
source
könnt ihr aus einem R-Skript A ein anderes R-Skript B aufrufen und ausführen - sehr hilfreich, um bei größeren Projekten den Überblick zu behalten oder Entwicklungsarbeit aufzuteilen.
Wenn ihr etwas komplexere Funktionen über eine Reihe etwas komplexerer Objekte laufen lassen wollt und es mit apply nicht schafft,
probiert es mal mit
do.call *
* Dies ist kein Link.
Wenn ihr etwas komplexere Funktionen über eine Reihe etwas komplexerer Objekte laufen lassen wollt und es mit apply nicht schafft,
probiert es mal mit
do.call *
* Dies ist kein Link.
Die Umgebungsvariablen eures Systems könnt ihr in R mit
Sys.getenv()
abrufen.
Zum Beispiel findet ihr in der langen Liste der Umgebungsvariablen euer Verzeichnis "R_HOME".
Die Umgebungsvariablen eures Systems könnt ihr in R mit
Sys.getenv()
abrufen.
Zum Beispiel findet ihr in der langen Liste der Umgebungsvariablen euer Verzeichnis "R_HOME".
Um Reihen von Texten nach Elementen zu durchsuchen, die mit einer bestimmten Buchstabenkombination anfangen, hat auch R eine Standardfunktion:
startsWith
Um Reihen von Texten nach Elementen zu durchsuchen, die mit einer bestimmten Buchstabenkombination anfangen, hat auch R eine Standardfunktion:
startsWith