Einführung in die Software R: Unterstützung für Teilnehmer der Veranstaltung „Statistische Methodenlehre 1“ 1. Veranstaltung 31.10.2000 Diese Veranstaltung zum Herunterladen: http://www.statoek.wiso.uni-goettingen.de/user/fred/rgrund.htm Allgemeine Information, neueste Versionen zum Herunterladen: http://www.ci.tuwien.ac.at/R/ Zum Herunterladen: http://www.statoek.wiso.uni-goettingen.de/veranstaltungen/statistik3/daten/ Einführung in R zum Herunterladen: http://www.statoek.wiso.uni-goettingen.de/service/rskript.htm R auf CD beim ADW zu Sprechzeiten zum Selbstkostenpreis von 2DM. www.stud.uni-goettingen.de/~adw Ein- und Ausgabe, Grundrechenarten >1+3 # Eingabe Addition; # ist Kommentarzeichen [1] 4 # Ausgabe des Ergebnisses > 2-5 # Subtraktion [1] –3 # Ergebnis > 7*3 # Multiplikation [1] 21 # Ergebnis > 8/4 # Division [1] 2 # Ergebnis > 1.234 # Eingabe einer Zahl; Dezimalpunkt statt Komma [1] 1.234 # Ausgabe > 1.2+2.3 # Addition von Dezimalzahlen [1] 3.5 # Ergebnis > 3^2 # Quadrate [1] 9 # Ergebnis > 3^4 # Potenzen [1] 81 # Ergebnis Wurzeln? > 3^1/2 # Falsch! Dies ist (3^1)/2 [1] 1.5 # Ergebnis > 3^(1/2) # Richtig! Wurzel als Potenz [1] 1.732051 > sqrt(3) # Wurzel mit Funktion sqrt [1] 1.732051 Exponential- und Logarithmusfunktionen > exp(1) # Exponentialfunktion an der Stelle 1 [1] 2.718282 > exp(2.23) # Exponentialfunktion an der Stelle 2.23 [1] 9.299866 > exp(-3) # Exponentialfunktion an der Stelle -3 [1] 0.04978707 > log(4) # Logarithmus von 4 [1] 1.386294 > log(10) # Logarithmus von 10 [1] 2.302585 Welcher Logarithmus ist das? > log(10,10) # Eingabe: Erklärung folgt weiter unten [1] 1 Was bedeutet das nun? > ?log # Hilfe zu log oder > help(log) # Hilfe zu log > log(10,10) # Eingabe Zehnerlogarithmus [1] 1 # Ergebnis > log(10) # Eingabe natürlicher Logarithmus [1] 2.302585 # Ergebnis > log10(10) # Zehnerlogarithmus von 10 mit der Funktion log10 [1] 1 # Ergebnis > log10(100) # Zehnerlogarithmus von 100 [1] 2 # Ergebnis > log(100,10) # Zehnerlogarithmus von 100 [1] 2 > log(100,base=10) # Zehnerlogarithmus von 100, base ist ein Argument der Funktion log [1] 2 Argumente einer Funktion werden in runden Klammern angegeben, sie werden durch Kommata getrennt. Sie sind entweder in der richtigen, in der Hilfe ersichtlichen Reihenfolge oder mit Argumentname = Wert anzugeben. Es gibt verlangte Argumente, die immer beim Aufruf anzugeben sind und optionale Argumente, denen bei der Definition der Funktion ein Defaultwert zugewiesen wurde. > log2(4) # Logarithmus von 4 zur Basis 2 [1] 2 > log2(8) # Logarithmus von 8 zur Basis 2 [1] 3 Es gibt verschiedene Möglichkeiten in die Hilfe zu gelangen. Komfortabel: Hilfe zu log über die Kommandozeile, HTML, dann Function auswählen und auf "L" klicken, log suchen, See Also auf sqrt klicken. Es gibt hier Links zu verwandten Funktionen. > c(1,2,3) # Die Funktion c verbindet Zahlen zu einem Vektor [1] 1 2 3 > c(1,2,3)+c(1,1,1)# zwei Vektoren werden komponentenweise addiert. [1] 2 3 4 > c(1,2,3)+c(2,1,3) [1] 3 3 6 > c(1,2,3)-c(2,1,3) )# zwei Vektoren werden komponentenweise subtrahiert [1] -1 1 0 > c(1,2,3)*c(2,1,3) )# zwei Vektoren werden komponentenweise multipliziert in R!!! [1] 2 2 9 > c(1,2,3)/c(2,1,3) )# zwei Vektoren werden komponentenweise dividiert in R!!! [1] 0.5 2.0 1.0 > log(c(1,2,3)) # Die Funktion log wird auf jede Komponente des Vektors angewendet [1] 0.0000000 0.6931472 1.0986123 > log(c(1,2,3),10) # Zehnerlogarithmus eines Vektors [1] 0.0000000 0.3010300 0.4771213 > sqrt(c(1,2,3)) Die Funktion sqrt wird auf jede Komponente des Vektors angewendet [1] 1.000000 1.414214 1.732051 > print(sqrt(c(1,2,3)),digits=3) # formatierte Ausgabe mit der Funktion print und dem Argument digits [1] 1.00 1.41 1.73 Unvollständige Eingabe > c(1,2,3)*c(2,1,3 # Eingabe unvollständig, Abschlussklammer fehlt + ) # R antwortet mit einem Pluszeichen als Folgeprompt, d.h. die Eingabe kann fortgesetzt # werden. Möglichkeit, um längere Eingaben über mehrere Zeilen auszuführen. [1] 2 2 9 Erzeugung von R-Objekten, Speichern, Namenszuweisung Um z.B. Vektoren, die man wiederholt benutzt, wie oben den Vektor c(1,2,3), nicht immer wieder neu eintippen zu müssen, kann man ihnen einen Namen in R zuweisen und damit ein RObjekt erzeugen, das während der ganzen Sitzung erhalten bleibt. Um es darüber hinaus zu erhalten, muss am Ende der Sitzung das sogenannte workspace image gespeichert (evtl. Diskette mitbringen in die Übung) werden. > x1<-c(1,2,3) # Speichert den Vektor c(1,2,3) in x1 Durch das Zeichen <- wird dem Vektor c(1,2,3) der Name x1 zugewiesen. Namen können aus Buchstaben und Zahlen bestehen, wobei das erste Zeichen keine Zahl sein darf. Es sollten keine Namen doppelt vergeben werden, da vorhandene Objekte überschrieben werden. Namen von in R implementierten Objekten, Funktionen sollten vermieden werden. > x2<-c(2,1,3) # Speichert den Vektor c(2,1,3) in x2 > x1 # Eingabe [1] 1 2 3 # Ausgabe > x2 [1] 2 1 3 > x1*x2 # Produkt aus x1 und x2 [1] 2 2 9 > x1/x2 # Quotient aus x1 und x2 [1] 0.5 2.0 1.0 # Ausgabe > y<-x1/x2 # Quotient aus x1 und x2 in y schreiben > # Es erscheint keine Ausgabe, lediglich das Promptzeichen > y # zeigt das Ergebnis [1] 2 2 9 Einfache Funktion plotten Wir wollen den natürlichen Logarithmus und den Zehnerlogarithmus im Bereich von 1 bis 10 in einer gemeinsamen Graphik darstellen. Wie würden Sie das mit Papier und Bleistift machen? > x<-1:10 # Folge der ganzen Zahlen von 1 bis 10. > y<-log(x) # natürlicher Logarithmus von x (komponentenweise) > x # Anzeigen von x [1] 1 2 3 4 5 6 7 8 9 10 > y # Anzeigen von y [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101 2.0794415 2.1972246 2.3025851 plot(x,y) # Plottet x auf der x-Achse und y auf der y-Achse in einem x,yKoordinatensystem > points(x,log(x,10))# die Funktion points zeichnet Punkte in eine vorhandene Graphik, hier den Zehnerlogarithmus von x > points(x,log(x,10),col="red") # mit dem Argument col kann die Farbe der Punkte bestimmt werden. Col ist ein graphischer Parameter. Siehe par in der Hilfefunktion für weitere graphische Parameter. > lines(x,log(x,10),col="green")# mit dem Befehl lines werden Linien in eine vorhandene Graphik gezeichnet. > lines(x,log(x),col="blue") # die natürlichen Logarithmen werden durch eine blaue Linie verbunden. Wir wollen eine genauere Darstellung unserer Funktion. > x<-seq(1,10,length=91) # Der Befehl seq definiert eine Folge (sequence), hier von 1 bis 10 der Länge 91, diese wird in x geschrieben. > y1<-log(x) # der natürliche Logarithmus von x wird in y1 geschrieben. > y2<-log(x,10) # der Zehnerlogarithmus von x wird in y2 geschrieben > cbind(x,y1,y2) # die Vektoren x, y1 und y2 werden in die Spalten einer Matrix geschrieben. Es folgt die Ausgabe der ersten fünf und letzten drei Zeilen (auf dem Bildschirm erscheint die ganze Matrix). x [1,] y1 y2 1.0 0.00000000 0.00000000 [2,] 1.1 0.09531018 0.04139269 [3,] 1.2 0.18232156 0.07918125 [4,] 1.3 0.26236426 0.11394335 [5,] 1.4 0.33647224 0.14612804 . . . [89,] 9.8 2.28238239 0.99122608 [90,] 9.9 2.29253476 0.99563519 [91,] 10.0 2.30258509 1.00000000 > plot(x,y1,type="l") # Es wird y1 gegen x geplottet. Mit dem Argument type=“l“ wird festgelegt, dass die Punkte durch Linien verbunden werden. > lines(x,y1,col="red",lwd=3) # die Kurve soll in roter Farbe und in der Linienstärke (lwd) 3 dargestellt werden. > lines(x,y2,col="blue",lwd=5) # es soll zusätzlich der Zehnerlogarithmus dargestellt werden, in blauer Farbe und Linienstärke 5 > title("Natürlicher Logarithmus und Zehnerlogarithmus in einem Bild") # Die Graphik bekommt mit title einen Titel. Speichern der erzeugten Objekte Kommandozeile über File und Save Image speichern, Dateinamen mit Endung .Rdata. Sie können die gespeicherten Objekte in der nächsten Sitzung mit Load Image wieder laden. Beenden der Sitzung Kommandozeile über File und Exit. Frage Save Workspace Image? beanworten.