Umgang mit R unter Windows Stand:2016-04-06. R: Software R für Windows (XP etc.) Version 3.2.4 (3/2016)R Linksammlung zu R:

Slides:



Advertisements
Ähnliche Präsentationen
GrafStat Ausgabe 2009 Ein kurzer Überblick.
Advertisements

Imperative Programmierung
Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Objekt – Relationales – Modell Tomasz Makowski IN
Seminar Stochastik im WS 02/03
4. Serverbasierte Programmierung: Perl 4.1Grundlagen 4.1.1HTTP-Server und CGI-Schnittstelle 4.1.2Formulare 4.1.3Ein einfaches Perl Programm 4.2Interaktion.
der Universität Oldenburg
Sequentielle Liste - Array
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
FH-Hof Einbindung von JavaScript Anweisungen
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Polymorphie (Vielgestaltigkeit)
Perl-Grundlagen Teile der Präsentation von A. Grupp,
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Die Skriptsprache Perl (6) Wolfgang Friebel DESY Zeuthen.
Arrays,Strings&Pointer in C/C++
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Java programmieren mit JavaKara
SOFTWARE.
Delphi II - OOP IFB Fortbildung
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
FORTRAN 77.
Informatik 1 Letzte Übung.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
PHP Basic.
Variablenkonzept Klassisch, in Java Basistyp
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
SQLite und XML in PHP 5.
Einführung in PHP.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Erstellen einer Arff-Datei
Mehrfach-informationen Einfachinformationen
Blockseminar Allgemeine Technologien II Dozent: P. Sahle März 2009 PHP in HTML Referentin: Angela Brinck.
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Vordefinierte Datentypen (1)
(Syntax, Strings/Zahlen, Variablen, Arrays)
Java-Kurs Übung Besprechung der Hausaufgabe
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Tutorium Software-Engineering SS14 Florian Manghofer.
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Umgang mit R unter Windows Stand: R: Software R für Windows (XP etc.) Version 3.0R Linksammlung zu R: R-Studio.
Tutorium Software-Engineering SS14 Florian Manghofer.
Besitzrechte. Datei- und Verzeichnis-Besitzer Dateien und Verzeichnisse gehören einem Benutzer und einer Gruppe Besitzer wird bei ls -l in der dritten.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Anforderungen an die neue Datenstruktur
Anforderungen an die neue Datenstruktur
Umgang mit R unter Windows
Konstruktoren.
Das IT - Informationssystem
Perl: pattern matching and regular expressions
Datentypen: integer, char, string, boolean
Templates
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
9. Vererbung und Polymorphie
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

Umgang mit R unter Windows Stand:

R: Software R für Windows (XP etc.) Version (3/2016)R Linksammlung zu R: Portable R R-Studio für Windows, Linux, Mac OS (Ascii-Text) Editoren:Ascii Tinn-R; Notepad++ (ggf. mit der Erweiterung NppToR)Tinn-RNotepad++

Umgang mit R unter Windows Vorschlag zur Organisation der Datenablage: Arbeits-Verzeichnis für Daten unter Windows anlegen (-> „WorkingDirectory“) z.B. „R_DATA“ Dort Icon für Verknüpfung mit R anlegen (R lädt dann ggf. den dort gespeicherten Workspace (s.u.)) sowie ggf. Icon für Verknüpfung mit einem ASCII-Text- Editor anlegen ggf. Kommunikation des Ascii-Text-Editors (z.B. Notepad++) mit „R“ herstellen

WorkingDirectory (Arbeits-Verzeichnis) Unter R WorkingDirectory ermitteln : getwd() Ggf. WorkingDirectory ändern mit Windows GUI oder: setwd(“ “) NB.: Bei Pfadangaben unter „R“ statt “\“ immer entweder “/“ oder “\\“nehmen, da “\“ eine sog. Escape-Sequenz einleitet.

Auf Dateien im WorkingDirectory zugreifen Inhalt des WorkingDirectory anzeigen: dir() Ascii-Text-Dateien ansehen: file.show(“ “) Systemfunktionen nutzen: z.B. PDF‘s, JPEG‘s ansehen: system(“open “) Funktioniert auch mit Dateien im Internet system(“open / / “)

Workspace (Arbeitsbereich) Objekte im Workspace von R auflisten: objects(); auch: ls() Objekte selektiv auflisten: ls(pat=“ “) Ggf einen bestimmten gespeicherten Workspace laden: (R lädt standardmäßig den Workspace des Verzeichnisses, aus dem es aufgerufen wurde) Mit Windows GUI oder: load(“ “) [NB!: “ “ ist i.d.R. binäre Datei]

Workspace (Arbeitsbereich) Einzelne Objekte aus Workspace entfernen: rm(,,..., ) Alle Objekte entfernen: rm(list=objects()); rm(list=ls()) Objekte selektiv entfernen: rm(list=ls(pat=“ “)) Workspace (als binäre Datei) sichern (speichern) mit Windows GUI oder: save.image(“ “) Als Ascii-Datei speichern: save.image(“ “,ascii=TRUE)

Befehls-History History ausgeben: history(); history(max.show=n); history(reverse=TRUE) History laden bzw. speichern mit Windows GUI “ “ ist ASCII-Text-Datei

Ergebnisse sichern und ausgeben Ausgabe in ASCII-Text-Datei umleiten: sink(“ “) Erweitert: sink(“ “, append=TRUE,split=TRUE) Ausgabeumleitung beenden: sink() Komplette Ausgabe der Sitzung in ASCII-Text-Datei (z.B. “lastsave.txt“) speichern mit Windows GUI Alle Objekte in ASCII-Text-Datei speichern dump(list = objects(), “ “)

Pakete Auf dem Rechner vorhandene Pakete anzeigen: library() Geladene (d.h. im Suchpfad befindliche) Pakete anzeigen: search() Paket laden: library( ); auch: require ( ) Paket aus dem Suchpfad entfernen: detach(package: ) Weitere Befehle zum Verwalten (Installieren etc.) von Paketen finden mit: apropos(“packages“)

Hilfe Allgemeine Hilfe: help.start() Hilfe zu einem Paket: help(package=“ “); help( ); ? Hilfe zu Funktionen etc. help( ); ? ; help.search(“ “); ?? Infos zum Umfeld der Funktionen: apropos(“ “) Beispiele für Funktionen: example( )

Import von Datentabellen im Ascii-Text-Format (1) Tabelle (im ASCII-Text-Format) importieren: read.table(“ “) und im Workspace ablegen: “) Dadurch wird ein Objekt der Klasse „data.frame“ erzeugt Klassenzugehörigkeit feststellen: class( ) Prüfen mit: is.data.frame( )

Import von Datentabellen im Ascii-Text-Format (2) Tabelle (im ASCII-Text-Format) über Zwischenablage importieren: read.table(stdin()) Zu importierende Tabelle als Matrix im Workspace ablegen: “))

Matrix aus Datentabelle erzeugen und umgekehrt Erzeugen einer Matrix aus einem „data.frame“: ) Prüfen: is.matrix( ) Erzeugen einer Datentabelle aus Matrix: ) Prüfen: is.data.frame( )

Datentypen und Datenstrukturen (1) R arbeitet mit drei "basalen" Datentypen: a) "numeric" (insbesondere vom Typ "integer" und "double" b) "character" (Zeichen und Zeichenketten) c) "logical" (Boolesche Werte: TRUE, FALSE) Als Spezialfall zusätzlich: "factor" bzw. "ordered" (zur Kodierung nominal- bzw. ordinalskalierter Werte) Einzelne Elemente einer Matrix werden mit [,] mit zwei Parametern angesprochen; einzelne Elemente eines Arrays mit [,,] mit drei Parametern LISTEN erlauben es, beliebige Mengen von Vektoren und/oder Matrizen und/oder Arrays und/oder DataFrames (s.u) mit jeweils unterschiedlichen Datentypen zu einer komplexen Datenstruktur zusammenzufassen. Listen koennen selbst wiederum Listen (beliebiger Komplexitaet) beinhalten. Einzelne Komponenten einer Liste werden mit [[]] angesprochen oder, sofern vorhanden, mit dem Namen der Komponente (unter Verwendung des $- Zeichens). DATAFRAMES sind fuer R Listen und zwar Listen aus Vektoren gleicher Laenge. In der Ausgabe werden die Vektoren als Spalten ausgegeben, die den Variablen einer Datenmatrix (im landlaeufigen Sinne) entsprechen. Die Tatsache, dass DataFrames Listen sind, erlaubt es, in einem DataFrame verschiedene Datentypen ("numeric","character","logical","factor","or dered") zu mischen. Allerdings muessen alle Eingaenge eines Vektors (Spalte,Variable) vom gleichen Typ sein. Die Komponenten (Spalten,Variablen) eines DataFrames, der ja eine Liste ist, werden mit [[]] angesprochen oder mit dem Namen der Variablen (default: V1,V2,...). Andererseits werden DataFrames teilweise auch wie Matrizen behandelt, so dass die i-te Spalte (Variable) auch mit [,i] angesprochen werden kann. Die Befehle dim(), rownames(),colnames() liefern gleiche Ergebnisse fuer Datentabellen in der Form von Matrizen oder von DataFrames. Abfrage der Art von Datenstrukturen: is.vector(), is.matrix(), is.array(), is.list(), is.data.frame() Konvertierung von DataFrames in Matrizen und umgekehrt: as.matrix(), as.data,frame() Abfrage von Eigenschaften von Datenstruktuen: class(), attributes(), mode(), length() ggf. typeof() Befehle zur Erzeugung von Datenstrukturen: vector(), matrix(), array(), list(), data.frame() DataFrames koennen mit attach() so eingebunden werden, dass man auf einzelne Spalten/Variable direkt ueber ihren Namen zugreifen kann (ohne an den kompletten Namen des DataFrames mit Hilfe des $-Zeichen den Namen der Variablen anhaengen zu muessen). Wenn das nicht mehr erforderlich ist, ist der DataFrame mit detach() wieder aus dem Suchpfad zu entfernen. A

Datentypen und Datenstrukturen (2) Abfrage z.B. mit is.numeric(), is.integer(), is.double is.character(), is.logical() Konvertierung z.B. mit as.character(), as.integer() Objekte des gleichen(!) Datentyps können zu einem Vektor als der einfachsten Datenstruktur zusammengefasst werden; z.B. mit Hilfe der Funktion c().

Datentypen und Datenstrukturen (3) Vektoren können aus Objekten vom Typ "numeric", "character", "logical" bestehen (dürfen aber in einem Vektor nicht gemischt werden) Eigenschaften von Vektoren können folgendermassen erfragt werden: class() mode(); bei "numeric" zusaetzlich mit typeof() length()

Datentypen und Datenstrukturen (4) Eine einzelne Zahl, ein einzelnes Zeichen oder eine einzelne Zeichenkette, ein einzelner Boolescher Wert ist ein Vektor der Länge 1. Einzelne Elemente eines Vektors werden mit [] selektiert. Vektoren haben unter R keine Dimension ! Die Abfrage dim() oder attributes() liefert 'NULL'.

Datentypen und Datenstrukturen (5) Neben Vektoren gibt es als weitere Datenstrukturen Matrizen, Arrays, Listen, DataFrames Matrizen (2-dimensionale Schemata z.B. von Zahlen) und Arrays (3-dimensionale Schemata) werden unter R als Vektoren(!) geführt, die - im Unterschied zu Vektoren im landläufigen Sinne - ein Dimensionsattribut haben. Das zeigt insbesondere der Vergleich von dim() mit length(), angewandt auf Vektoren, Matrizen und Arrays. Matrizen und Arrays können (wie Vektoren) Daten vom Typ "numeric", aber auch "character" oder "logical" umfassen (aber nicht gemischt werden).

Datentypen und Datenstrukturen (6) Einzelne Elemente einer Matrix werden mit [,] mit zwei Parametern angesprochen; einzelne Elemente eines Arrays mit [,,] mit drei Parametern Listen erlauben es, beliebige Mengen von Vektoren und/oder Matrizen und/oder Arrays und/oder DataFrames (s.u) mit jeweils unterschiedlichen Datentypen zu einer komplexen Datenstruktur zusammenzufassen. Listen koennen selbst wiederum Listen (beliebiger Komplexitaet) beinhalten.

Datentypen und Datenstrukturen (7) Einzelne Komponenten einer Liste werden mit [[]] angesprochen oder sofern vorhanden, mit dem Namen der Komponente (unter Verwendung des $-Zeichens).

Datentypen und Datenstrukturen (8) DataFrames sind für R Listen und zwar Listen aus Vektoren gleicher Länge. In der Ausgabe werden die Vektoren als Spalten ausgegeben, die den Variablen einer Datenmatrix (im landläufigen Sinne) entsprechen. Die Tatsache, dass DataFrames Listen sind, erlaubt es, in einem DataFrame verschiedene Datentypen ("numeric","character","logical","factor","ordered") zu mischen.

Daten im ASCII-Text-Format exportieren Datentabelle bzw. Datenmatrix exportieren: write.table(,“ “) Daten als Matrix mit “,“ als Dezimalzeichen exportieren: require(MASS) options(OutDec=“,“) write.matrix(,“ “) options(OutDec=“.“)

Zeichenketten einlesen und exportieren Zeichenketten einlesen: dget(“ “) Zeichenkettenobjekt in Datei schreiben dput(,“ “) N.B. Bei dget() und dput() gehen Kommentare (mit “#“) verloren.

Weitere Möglichkeiten des Lesens bzw. Schreibens (1) Übersicht mit apropos(“read “) bzw. apropos(“write “) readClipboard(), writeClipboard() für CharacterStrings readLines(): Liest Text-Datei mit n Zeilen zeilenweise in Charakter String mit n Komponenten writeLines(): Schreibt CharacterStrings

Weitere Möglichkeiten des Lesens bzw. Schreibens (2) read.table(stdin()): Liest vom Clipboard Falls es sich um Zeichenketten handelt, können diese mit as.matrix(read.table(stdin()) als Charakter-String abgelegt werden scan(): readline(): Liest vom Prompt

Import von Excel-Datenblättern (1) Beim Importieren von Excel-Datenblättern sind insbesondere folgende Spezialfälle zu berücksichtigen: Erstens: Zeichen für Feldseparatoren (US: “,“ - DE: “;“) bzw. Tabulator: (“\t“) als Separator Bei Import per Copy&Paste (“clipboard“) ist Tabulator (“\t“) der Feldseparator Zweitens: Dezimalzeichen (US: “.“ - DE: “,“) Drittens: Stehen Spaltennamen in der ersten Zeile ? (-> “header=T“) Viertens: Stehen Zeilennamen in der ersten Spalte ? (-> “row.names=“X“ “ bzw. “row.names=1“)

Import von Excel-Datenblättern (2) Standardmäßig gelten folgende Vorgabewerte: read.table (file, header=FALSE, sep=“ “, dec=“.“, …) read.csv (file, header=TRUE, sep=“,“, dec=“.“, …) read.csv2 (file, header=TRUE, sep=“;“, dec=“,“, …) read.delim (file, header=TRUE, sep=„“\t“, dec=“.“, …) read.delim2 (file, header=TRUE, sep=„“\t“, dec=“,“, …) “read.csv2()“ und “read.delim2()“ verwenden also deutsche Konventionen; haben aber unterschiedliche Feldseparatoren

Import von Excel-Datenblättern (3) Beispiele: A) Excel-Datenblatt (im CSV-Format!) importieren : read.csv2(“ “) read.csv2(“ “, row.names=“X“) B) Excel-Datenblatt über Zwischenablage (“clipboard“) importieren (Spaltennamen in erster Zeile ; Zeilennamen in erster Spalte): read.table(“clipboard“, sep=“\t“, dec=“,“, header=T, row.names=“X“)

Import von Excel-Datenblättern (4) C) Excel-Datenblatt über Zwischenablage importieren (Keine Spaltennamen in erster Zeile und keine Zeilennamen in erster Spalte): read.table(“clipboard“, sep=“\t“,dec=“,“) mit Zeilennamen in erster Spalte: read.table(“clipboard“, sep=“\t“, dec=“,“, row.names=1) Statt read.table(... sep=“\t“, dec=“,“) auch: read.delim2(“clipboard“) verwenden Ergebnis ist in allen Fällen ein „data.frame“

Import von Excel-Datenblättern (5) Bestimmtes Datenblatt einer Excel-Datei einlesen (geht im Unterschied zu “read.csv2()“ nicht mit Dateien aus dem Netz; s.u.): require(xlsReadWrite) read.xls(“ “) read.xls(“ “,sheet = 1)

Export von Tabellen als Excel-Datei im CSV- Format write.csv2(,“ “)

Aus dem Netz importieren (1) Datentabellen im ASCII-Text-Format aus Netz importieren: read.table (con / / “)) read.table(“ / / “) CSV-Dateien aus Netz importieren: read.csv2(con / / )“,row.names=“X“)) read.csv2 (“ / / )“,row.names=“X“) read.csv2 (“ / / )“,row.names=1)

Aus dem Netz importieren (2) Skriptdatei (im ASCII-Text-Format) importieren: source(con / / “)) source(“ / / “) Binäre.RDatei importieren: load(con / / “))

Eigenschaften von R-Objekten ermitteln class( ) print( ); attributes( ) str( ) mode( ) typeof( ) length( ) summary( )

Datentypen, Datenstrukturen, weitere Objektklassen (1) Datentypen: numeric, character, (ordered) factor, logical Datenstrukturen: vector(), matrix() / array(), list(), data.frame() Abfragen, z.B.: is.numeric(), is.character(), is.ordered()... is.matrix(), is.array... NB.: Jede Matrix ist auch Array, aber nicht umgekehrt; hier besser Klassenzugehörigkeit bestimmen

Datentypen, Datenstrukturen, weitere Objektklassen (2) Transformieren: as.numeric(), as.factor(), as.ordered()... as.matrix(), as.data.frame()... N.B.: Numerisch kodierte Faktoren müssen erst in character umgewandelt werden: as.numeric(as.character( )) im Vergleich zu: as.numeric( ) Weitere Objektklassen z.B. dist, hclust etc.

Attribute von Matrizen attributes( )mode: list attributes( )$dimmode: numeric –dim( )mode: numeric attributes( )$dimnamesmode:list –dimnames( )mode: list –colnames( )mode: character –rownames( )mode: character –row.names( )mode: character

Attribute von DataFrames attributes( )mode: list attributes( )$namesmode: character attributes( )$row.namesmode: numeric (!) dim( )mode: numeric names( )mode: character colnames( )mode: character row.names( )mode: character rownames( )mode: character

Label von Zeilen und Spalten names(): Vektoren, Listen, Spalten von DataFrames rownames(), row.names(), dimnames()[[1]]: Matrizen, Arrays, DataFrames colnames(), dimnames()[[2]]: Matrizen, Arrays, DataFrames dimnames[[3]]: Arrays colnames() Matrizen, Arrays, DataFrames dimnames()[[2]]

Dimensionen von Vektoren, Matrizen, Arrays Matrizen und Arrays werden von R als Vektoren mit einem dim-Attribut geführt, das aus 2 bzw. 3 Zahlen besteht Vektoren und Skalare sind dagegen dimensionslos Extrahierte Zeilen oder Spalten einer Matrix verlieren ihr dim-Attribut, es sei denn man setzt Parameter [, drop=F] Extrahierter Skalar einer Matrix hat ebenfalls dim=NULL, es sei denn [, drop=F]

Zuweisung von neuen Attributen Mit attr() weitere Attribute setzen und lesen z.B. Zuweisung eines neuen Attributs “dok“ vom mode “character“ an ein Objekt (z.B. DataFrame) attr(, “dok“) “ attributes( ) attributes( )$dok attributes( )$dok “

Besonderheiten des Arbeitens mit DataFrames DataFrames sind Listen von (Spalten-)Vektoren gleicher Länge, welche jeweils Daten unterschiedlichen Typs beinhalten können: numeric, factors, ordered, character … Komponenten sind die Spalten (=“Variablen“), die statt über [,1],[,2] auch mit ihren Namen (sofern vorhanden) angesprochen werden können: $. Funktionen erlauben oft: “ (, data= )“ Zuweisung neuer Variablen zu DataFrames: $ Mit “attach( )“ kann der DataFrame so eingebunden werden, dass seine Variablen direkt (d.h. ohne Erwähnung des DataFrames) angesprochen werden können: “ “ statt “ $variable“