Dipl.Math. Dr. Haiko Lüpsen
|
Erzeugen von Daten
Namen für Elemente
Zeichenmanipulationen
Wandeln von Objekten
Zusammenfassen von Vektoren und Matrizen
Auswahl von Teilmatrizen/Vektoren
Funktionen bei Matrizen
Ersetzen von Werten und Variablen
Handhabung von Missing Values
Ausgabe von
Ergebnissen
Arbeiten mit Dataframes
Diverses
Anfangswert, Endwert und Schrittweite müssen nicht ganzzahlig und dürfen negativ sein.
Erzeugen eines Vektors:
x <- c(.., .., ..)
Erzeugen eines Vektors x mit aufeinanderfolgenden Zahlen :
x
<- Anfangswert:Endwert
Erzeugen eines Vektors x mit Zahlen :
x <-
seq(Anfangswert, Endwert, by=Schrittweite,
length.out=Anzahl)
Replizieren eines Vektors (Anzahl darf ein Vektor sein):
x <-
rep(Vektor, times=Anzahl) Wiederholung des gesamten
Vektors
x <- rep(Vektor, each=Anzahl) Wiederholung der
einzelnen Elemente des Vektors
Generierung von Faktor-Levels:
f <- gl(n,k)
Errzeugen von k Levels 1, k Levels 1,...,k Levels
n,
Erzeugen eines Vektors x mit aufeinanderfolgenden kleinen Buchstaben
:
x <- letters[Anfangswert:Endwert]
Erzeugen eines Vektors x mit aufeinanderfolgenden großen
Buchstaben :
x <- LETTERS[Anfangswert:Endwert]
Abkürzungen der 12 Monatsnamen bzw.
Tagesnamen:
month.abb
day.abb (nur S-Plus)
Namen für die Elemente eines Vektors:
names(Vektor)
<- c("..", "..",...)
Namen für die Elemente eines Data-Frames:
names(Dataframe) <- c("..", "..",...) (für
Variablennamen, Spalten)
row.names(Dataframe) <- c("..",
"..",...) (für Fallkennzeichnungen, Zeilen)
Namen für die Zeilen und Spalten einer Matrix oder Tabelle:
rownames(Matrix) <- c("..", "..",...)
colnames(Matrix) <- c("..", "..",...)
Namen für die Elemente einer Matrix bzw. eines Arrays
Array:
dimnames(Array) <- list(c("..", "..",...),
c("..", "..",...))
dimnames(Array)[Dimension] <-
list(c("..", "..",...))
Namen für die Werte einer nominalen oder ordinalen Variablen (durch
Wandlung in Typ "factor"):
factor(Vektor, levels=c(...),
labels=c(...)) Vergabe von
Wertenamen
as.numeric(Faktor) Zurücksetzen auf
numerische Werte
levels(Faktor) Wertenamen (z.B. für
Verwendung in Legenden)
elementweises Verbinden von Vektoren beliebigen Typs zu einem Vektor vom
Typ character mit einem vorgegebenen Trennzeichen, wobei wahlweise über
collapse alle Elemente des Ergebnisvektors zu einer Zeichenkette verbunden
werden können
paste(...,...,...,sep=Trennzeichen,collapse=Zeichen)
Trennen eines Vektors vom Typ Character an einem vorgegebenen
Trennzeichen
unpaste(...,sep=Trennzeichen) (nur SPlus)
(elementweise) Auswahl einer Zeichenkette aus einem Vektoren vom Typ
Character
substring(Vektor, Startposition,
Endposition)
Teilen einer Zeichenkette
strsplit(...,Trennzeichen)
Zeichenzahl der Elemente eines Vektors vom Typ Character
nchar(Vektor) Zeichnzahl pro Element
Wandeln in Klein- bzw. Großbuchstaben für die Elemente eines
Vektors vom Typ Character
tolower(Vektor) Wandeln in
Kleinbuchstaben
toupper(Vektor) Wandeln in
Großbuchstaben
Suchen nach einer Zeichenkette in einem Vektor vom Typ Character
grep(Zeichenkette, Vektor) gibt die Indizes von
Vektor aus, wo Zeichenkette gefunden
wurde
sub(Zeichenkette1, Zeichenkette2, Vektor) ersetzt die
Zeichenkette1 durch die Zeichenkette2 in Vektor
Ersetzen der Zeichen in string1 durch durch die
korrespondierenden Zeichen in string2 in einem
Vektor
chartr(string1, string2, Vektor)
Abkürzungen der Elemente eines Vektors vom Typ Character auf
n Zeichen
abbreviate(Vektor, minlength=n)
Vektor in Matrix
x <- matrix(Vektor,ncol=...,
nrow=...)
Vektor in Array
dim(x) <-c (Dimension1,
Dimension2, ...)
x <- array(Vektor,c(Dimension1,
Dimension2, ...))
Vektoren in Data Frames mit Übernahme der Vektornamen als
Variablennamen:
x <- data.frame(Vektor1, Vektor2, ...)
Vektoren in Data Frames mit Vorgabe von Variablennamen:
x <-
data.frame(Name1=Vektor1, Name2=Vektor2, ...)
Vektor in eine (univariate) Zeitreihe
x <- ts(Vektor,
frequency=Periodenlange)
Univariate Zeitreihen in eine multivariate Zeitreihe
x <-
tsmatrix(Zeitreihe1, Zeitreihe2, ...) (nur SPlus)
Vektor in Factor
factor(Vektor) Wandlung in Typ
"factor" (Übernahme der Werte als Labels)
factor(Vektor,
labels=...) Wandlung in Typ "factor" (Vorgabe von Labels)
ordered(Vektor, levels=..., labels=...) Wandlung in Typ
"factor" mit Sortierung
cut(Vektor,Intervallanzahl)
Einteilung in Intervalle mit Wandlung in Typ "factor"
cut(Vektor,c(Liste von Intervallgrenzen)) Einteilung in
Intervalle mit Wandlung in Typ "factor"
cut(Vektor,c(Liste von
Intervallgrenzen), labels=...) Einteilung in Intervalle mit Wandlung
in Typ "factor" (Vorgabe von
Labels)
interaction(Factor1,Factor2,...) Bilden einer
Faktor-Interaktion
as.numeric(Factor)
Zurückwandeln in numerische Werte
(1,2,3...)
as.numeric(levels(Factor))[Factor]
Zurückwandeln in numerische Werte mit Wiederherstellen der originalen
Werte
Bilden von
Listen
list(name1=Object1,name2=Object2,...) Zusammenfassen
von Object1,... zu einer Liste
unlist(list)
Zusammenfügen der Objekte einer Liste zu einem Vektor (nicht immer
sinnvoll)
Allgemeine Funktionen zum Wandeln:
as.character(Vektor) Wandlung in Typ "character"
as.numeric(Vektor) Wandlung in Typ
"numerisch"
as.integer(Vektor) Wandlung in Typ "ganzzahlig
numerisch"
as.logical(Vektor) Wandlung in Typ "logisch"
(0->F , sonst T)
as.vector(Matrix) Wandlung einer Matrix
in einen Vektor
as.matrix(Dataframe) Wandlung eines
Dataframes in eine Matrix
Datum in der Reihenfolge Jahr-Monat-Tag:
as.Date(Character-Vektor,format="...") Wandeln vom Typ
Character in Date
strptime(...) für eine Liste der
Format-Spezifikationen, u.a.
%d (Tag), %m (Monat, dezimal), %B (Monatsname),
%b (Monatsname, kurz), %Y (Jahr), %y (Jahr 2-stellig)
Bearbeiten und Wandeln von Zeitangaben: Pakete "chron" und "timeDate".
"nebeneinander", als Spalten (auch bei Data-Frames möglich):
x <- cbind(Vektor1/Matrix1,
Vektor2/Matrix2,....)
"untereinander", als Zeilen:
x <-
rbind(Vektor1/Matrix1, Vektor2/Matrix2,....)
Objekte in Listen
x <- list(Name1=Objekt1,
Name2=Objekt2, ...)
Verbinden der einzelnen Teile einer Liste zu einem Vektor:
unlist(Listenname)
Erweitern einer Datenmatrix um zusätzliche Variablen
Vektor1, Vektor2,.. mit den neuen Namen Name1,
Name2,...
x <- data.frame(DataFrame,
Name1=Vektor1, Name2=Vektor2,...)
Zusammenfügen von 2 DataFrames: Hinzufügen von
Variablen:
merge (DataFrame1, DataFrame2, by.x=0, by.y=0,
all.x=T) (via Fallnummer)
merge (DataFrame1, DataFrame2,
by.x=Var1, by.y=Var2, all.x=T) (via Variable Var1
bzw. Var2)
Zusammenfügen von 2 DataFrames: Hinzufügen von
Fällen:
merge (DataFrame1, DataFrame2,
by.x=Varliste1, by.y=Varliste2, all=T) (mit Variablelisten
als Vektoren, wahlweise Spaltennummern oder Variablennamen)
Ausgewählte Zeilen:
subset(DataFrame,
logische Bedingung)
DataFrame[logische
Bedingung, ]
Ausgewählte Spalten:
subset(DataFrame,
select=Spaltenauswahl)
DataFrame[ ,Vektor mit
Spaltenauswahl]
Auswahl einer Zufallsauswahl vom Umfang
n:
sample(Vektor, n)
Aufsplitten eines Vektors entsprechend einem Vektor vom Typ
factor
split(Vektor, Faktor)
length(x) # Variablen (DataFrames), # Elemente (Matrizen) bzw.
Vektorlänge (Vektoren)
dim(x) # Zeilen und Spalten
(DataFrames) bzw. Länge der Dimensionen bei Matrizen und Arrays
nrow(x)# Zeilen von Matrizen und DataFrames, =1 bei Vektoren
ncol(x)# Spalten von Matrizen und DataFrames, =Länge bei
Vektoren
Ersetzen von Werten innerhalb eines Vektors:
replace(x,
Indizes, Werte)
Ersetzen einer Variablen innerhalb eines Data-Frames:
DataFrame$Variable <- ...
within(DataFrame,
Variable <- ...)
Umkodieren eines Vektors:
recode(x, neuer
Wert<-c(alte Werte), neuer Wert<-c(alte
Werte) (Paket "memisc")
Viele Funktionen erlauben einen Parameter wie z.B. "na.rm", der bewirkt
Fälle mit MV ausgeschlossen werden:
Funktion(..., na.rm=T)
bei statistischen Funktionen
Funktion(..., useNA.rm="ifany")
bei table
sort(..., na.last=T/F/NA) NAs ans
Ende/Anfang/entfernen
Einige Funktionen zur multivariaten Analyse erlauben einen Parameter
"na.action", der bewirkt Fälle mit MV ausgeschlossen
werden:
Funktion(..., na.action=na.omit) Fälle mit MV
werden von der Analyse ausgeschlossen.
Funktion(...,
na.action=na.exclude) Fälle mit MV werden von der Analyse
ausgeschlossen aber bei Ergebnisvariablen mit MV aufgefüllt (bislang nur
lm und glm)
Auswahl aller Fälle ohne
MV:
na.omit(Datenmatrix) Fälle mit MV werden
eliminiert.
na.exclude(Datenmatrix)Fälle mit MV werden
von der Analyse ausgeschlossen aber bei Ergebnisvariablen mit MV
aufgefüllt.
Abfrage der MV einer
Variablen/Datenmatrix:
is.na(Variable/Datenmatrix)
is.missing(Variable/Datenmatrix)
(R: Paket splus2R)
logische Abfrage, ob ein Objekt definiert ist (z.B. als Parameter in
einer Funktion)
is.null(x)
Ausgabe einer Variable, die anzeigt, ob ein Fall fehlende Werte hat oder
nicht (T/F):
complete.cases(Datenmatrix)
Ausgabe der Indizes der MV einer
Variablen/Datenmatrix:
which.na(Variable/Datenmatrix) (R:
Paket splus2R)
u.a. Wandlung eines numerischen Vektors in den Typ character und
(wahlweise) Ausgabe auf eine Datei:
cat (x1, x2, x3,...,
file="...", sep="...", append=F/T)
x1, x2, x3,... können
beliebige Vektoren (oder Konstanten, z.B. Text) sein,
mit "sep" wird
(wahlweise) ein Zeichen festgelegt, das alle Elemente miteinander
verbindet,
Zeilenumbrüche werden durch "\n" erzeugt
mit
append=T kann eine bestehende Datei ergänzt werden.
Ausgabe von Objekten (z.B. in Funktionen):
print(...)
Erzwingen der Ausgabe auf den Bildschirm (also keine
Pufferung)
flush.console()
Ausführen mehrerer Kommandos, z.B. Datenmanipulationen, für
einen Dataframe, und anschließender
Speicherung:
within(DataFrame, {Kommando1; Kommando2;...})
-> ...
Ausführen eines Kommandos, z.B. statistische Analyse, für
einen Dataframe:
with(DataFrame, Kommando)
Anzeigen der ersten, letzten bzw. einer Zufallsauswahl von Zeilen eines
Dataframes, einer Matrix oder eines Vektors:
head(DataFrame,
n=Anzahl Zeilen) (Paket "utils")
tail(DataFrame,
n=Anzahl Zeilen) (Paket "utils")
some(DataFrame,
n=Anzahl Zeilen) (Paket "car")
Setzen von Parametern, u.a. für die Ausgabe:
options(...)
Logischer Vergleich zweier Vektoren: für die Positionen von x , ob
der Wert von x in y vorkommt
x %in% y
jeweils
T/F, ob der Wert von x in y vorkommt
match(x, y)
jeweils Indexposition in y, wo der Wert von x in y vorkommt
Elimination doppelter Werte (Vektoren) bzw. Zeilen (Matrizen und
Dataframes)
unique(x, fromLast=T/F) (wahlweise am
Anfang/Ende beginnend)
Markierung doppelter Werte innerhalb eines Vektoren als
TRUE
duplicated(x)
Abfrage, ob Werte der Vektors x im Vektor y enthalten
sind
x %in% y