Posts mit dem Label R werden angezeigt. Alle Posts anzeigen
Posts mit dem Label R werden angezeigt. Alle Posts anzeigen

Donnerstag, 6. April 2017

R Package Helper: Finden aller benötigten R Pakete

So kann man alle R Pakete in einem Projekt finden und in eine Datei schreiben.

RUN grep -r -h library src | tr '()' ' ' | tr '"' ' ' | awk '{print $2}' > DEPENDENCIES.txt

Später kann man diese Datei im Dockerfile verwenden um im Docker alle benutzen R Pakete zu installieren:

RUN cat DEPENDENCIES.txt  | xargs -i Rscript -e 'install.packages("{}", repos="http://cran.us.r-project.org")'

Montag, 13. Februar 2017

Graphische Trendanalyse von stark schwankenden Messwerten mit R

Statistisch lässt sich das Problem recht einfach mit dem XX-Test und ähnliche Test lösen. Neben diese Aussage ist es notwendig die Rohdaten entsprechend graphisch aufzubereiten, weil man mit Grafiken wesentlich besser überzeugt als mit der Angabe von Wahrscheinlichkeit oder Koeffizienten.

Die graphische Aufbereitung von stark schwankenden (volatiler) Messwerten kann man einfach als Signalverarbeitungsproblem sehen. Zuerst muss man das Signal (Messwerte) glätten und danach schärfen.

Die mathematische Entsprechung einer einfachen Glättungsfunktion, bei der Bildverarbeitung spricht man auch von einem Weichzeichner, ist der gleitende Mittelwert mit einer Gauss-Verteilungs-Gewichtung.

In R sieht dass dann wie folgt aus:
library('smoother')
smth.gaussian(dtDateRange$duration_min, window = kSmoothingWindowSize, tails = T)


Hier ein Ergebnis in graphischer Form. Klar sind hier die unterschiedlichen Bereich erkennbar. Man kann das Ergebnis noch deutlich verbesser um alle hochfrequenten Schwingungen zu eliminieren.
Hier noch ein anderes Beispiel für die graphische Trendanalyse inclusive der originalen Werte.


Mittwoch, 5. Oktober 2016

Schnell Analysen mit R: Ich kenn SQL aber wie mache ich das in R?

Hier eine kleine Anleitung für SQL erfahrene Benutzer um Daten schnell und effizient mit R zu analysieren.

Mit R kann ohne Zusatzpakete jedes Problem lösen. Leider sind einige Funktionen in R relativ umständlich und bei grossen Datenmengen nicht sehr performant. Ein R-Paket mit dem es schneller und einfacher geht ist: data.table. Alternativ können auch andere Pakete wie dplyr oder sqldf benutzt werden. Dplyr setzt auf Pipes (wie Splunk auch) zur Verarbeitung der Daten. Mit dem R-Paket sqldf werden die Daten in eine SQLite Datenbank übertragen. Dann können die Daten einfach mit SQL abgefragt werden: sqldf("select avg(vctotal), avg(dctotal) from a2 where label ='A'"). Hier noch eine Anmerkung zur Benutzung von Date Feldern in sqldf, die Date Strings müssen ins UTC ticks / unix epoch Werte umgerechnet werden. Das ist das interne Format der Datenbank.

Aber los gehts.

Voraussetzung:
  • data.table geladen
  • Daten aus CSV Datei in die Variable g geladen.

Anmerkungen
  • Row (R) und Tupel (SQL) werden hier synonym verwand.
  • Was in Programmiersprachen wie Java der Punkt ist ist in R das $ Zeichen.
  • Mit installiertem OpenMP laufen einige data.table Operationen schneller. Auf dem Mac installiert man OpenMP mit brew install openmpi
  • Effiziente Benutzung von data.table Link

R data.table cheat sheet

Aufgabe
SQL
R + data.table
Anmerkung
Auswahl mit Hilfe eines Vergleichs Rows/Tupelselect * from g where dc < 10000g[ dc < 10000, ]Nicht das Komma vergessen
Nur die ersten 15 Rows anzeigenselect * from g limit 15
head( g, 15)
g[ 1:15, ]
Beide Varianten gehen
Mehrfach Auswahlselect * from g where dc < 10000 and dc > 500g[ dc < 10000 & dc > 500, ]
Zählen der Ergebnisseselect count(*) from gg[ , .N ]
.N ist eine spezielle Variable in data.table - alternativ kann man die Anzahl auch über dim(g)[1] bestimmen.
Mittelwert berechnenselect avg(dc) from gg[ , mean(dc) ]In R heisst der Mittelwert mean und nicht average
Mittelwert und Median berechnen???g[ , c(mean(dc), median(dc)) ]Hier müssen die Berechnungen mittel c() zusammengefasst werden
Mittelwert berechnen bezogen auf verschiedene Gruppenselect avg(dc) from g grouped by ABg[ , mean(dc), by = AB ]Achte auf das = nach dem by
Auswahl mit einer Liste
select * from where visit IN (values)
a[ a$visit %in% meineListe ]wichtig sind hier die umschliessenden % Zeichen, meineListe ist eine Liste mit den Selektionierten - values sind die Werte selbst
Umgekehrte Auswahl mit einer Listeselect * from where visit NOT IN (values)a[ !(a$visit %in% meineListe) ]Negation mit !
Vorkommen von Werten zählenselect count(*) from g grouped by visittable( g$visit )um teure Operationen zu testen, kann man die Operation auf einem Subset durchführen table( g[1:50]$visit )
Left outer joinselect * from g, tg[ t ]
Anmerkung: es müssen in g und t die Spalten als Key gesetzt werden die man für den Join benutzen möchte
setkey(g, visit)
setkey(t, visit)
Berechnen einer neuen SpalteALTER TABLE g ADD vkok AS (vc<10000 & vc>500) a1[ , vkok:=(vc < 10000 & vc > 500) ]Hier wird in Place eine neue Spalte mit boolschen Werten berechnet: vkok
Löschen einer  SpalteALTER TABLE c DROP COLUMN vcgroup g$vcgroup = NULL
Teilen ein Menge in gleich grosse Teilmengen (Buckets)
g1$vcg = as.numeric( cut2( g1$vc, g = 5) )Es wird eine neue Spalte den Daten hinzugefügt die die Gruppennummer des Buckets enthält. Die Buckets enthalten gleich viele Element, dies kann wie folgt geprüft werden: g1[, .N , by = vcg]
Die Buckets werden entlang der Dimension vc gebildet. Aufsummiert ergeben die Buckets eine Percentil-Zerlegung der Daten.
Auswahl einer Menge Mittels LikeSELECT * FROM a1 WHERE url LIKE "amount.json"a1[ like(url,"amount.json") ]Die LIKE Funktion ist eine Art sehr einfacher Grep
SortierenSELECT * FROM a1 ORDER BY ttfb ASCa1[ order(ttfb) ]Sortiert das Ergebnis der Abfrage nach dem Feld ttfb. Es können auch mehrere Felder angegeben werden, nach denen sortiert wird. Wichtig, hier keine Anführungszeichen beim Feldnamen (colname) verwenden.
SortierenSELECT * FROM a1 ORDER BY ttfb DSCa1[ order(-ttfb) ]Sortiert das Ergebnis der Abfrage nach dem Feld ttfb in der engegengesetzten Reihenfolge (absteigend).

Mittwoch, 13. Juli 2016

Run All Test on File Change

Eines der besten Instrumente um Code zu verbessern sind Test, speziell Unit Tests. Unit Test sind für alle erdenklichen Programmiersprachen verfügbar und wenn nicht, dann schreibt man sich den Test selbst, ohne Frame Work. Mit Hilfe der Unit Test können Fehler einfach aufgedeckt werden dazu muss man nicht nur die Test haben, sondern sie auch permanent ausführen. Dieses permanente Ausführen ist die Aufgabe des Continouse Integration Servers, z.B. Jenkins. Alternativ gibt es auch die Unit Integration in die IDE. Wem selbst der Jenkins oder die IDE zu langsam ist, schnelle Roundtripzeiten bedeuten effizientes Entwickeln, der kann sich mit Hilfe eines einfachen Scripts seine Test ausführen, wenn sich etwas am Quellcode der Software oder der Test geändert hat (File save).

Hier ein Beispiel für den Mac, dass Unit Test für R ausführt und den Entwickler per Notification auf Fehler bei der Testdurchführung hinweist. Zuerst muss per Homebrew fswatch installiert werden. Dann muss dieses Script ins Root Verzeichnis deines Projektes abgelegt werden. Dann muss es starten. Es läuft ohne Unterbrechung solange, bis man via CRTL + C abbricht. Alternativ kann man das Script für andere Umgebungen anpassen.


#!/usr/bin/env bash

runX=true

finish (){
    runX=false
}
trap finish SIGINT


runTests(){
    for SCRIPT in src/test/*
    do
        if [ -f $SCRIPT -a -x $SCRIPT ]
        then
            $SCRIPT
            if [[ $? -ne 0 ]] 
            then
                FAILEDTESTS=${FAILEDTESTS}"\n"$SCRIPT
            fi
        fi                                                      
    done
    if [ ${#FAILEDTESTS} -ge 1 ]
    then
        osascript -e 'display notification  "'"$FAILEDTESTS"'" with title "R Test failed"'
        FAILEDTESTS=""
    fi
}

while $runX; do
    fswatch src/main/*.R src/test/*.R | runTests 
done



Mittwoch, 8. Juni 2016

RStudio oder R startet nicht mehr auf meinem Mac

Verschiedentlich stand ich vor dem Problem, dass Studio nicht mehr startete und die meisten "Lösungen" aus dem Internet nicht funktionierten.
Der Grund warum Studio nicht startet ist: R start nicht mehr. In der Kommandozeile erhält man folgende Fehlermeldung:
metalpro2:mastercontroller mirkoebert$ R
dyld: Library not loaded: /usr/local/opt/gcc/lib/gcc/5/libgfortran.3.dylib
  Referenced from: /usr/local/Cellar/r/3.3.0/R.framework/Versions/3.3/Resources/lib/libR.dylib
  Reason: image not found

Trace/BPT trap: 5

Ja, die Fehlermeldung ist richtig, die referenzierte Fortran-Bibliothek fehlt. Grund hierfür war ein Brew (Homebrew) Update der Compiler Suite. Entgegen anders lautender Tipps ist die Lösung sehr einfach. Man muss nur einen passenden Link setzen. That's all.


ln -s /usr/local/opt/gcc/lib/gcc/6 /usr/local/opt/gcc/lib/gcc/5


Dienstag, 12. April 2016

Keep Simple Things Simple

Einige Skriptsprache bieten das Feature, dass der letzte Wert einer Methode der Returnwert dieser Methode ist. Man muss ihn also nicht explizite zurückgeben. Das ist ein durchaus hilfreiches Feature, was den zu schreibenden Code reduziert. In der Regel ist Convention zutreffend und damit hilfreich. Leider kann man diese Hilfe auch zu seltsamen Code führen. Hier ein R Beispiel.

Hier wird die Variable visitData explizit noch einmal aufgeführt damit sie von der Methode zurückgeben wird. Und dazu kommt noch der Kommentar der dieses Verhalten beschreibt. Besser wäre hier die konventionelle Schreibweise mit explizitem Return. Sie ist besser zu verstehen und kürzer.

Sonntag, 15. März 2015

Installieren eines R Paketes mit Hilfe eines eigenen TMP Verzeichnisses

In einigen Linux Installationen ist das TMP Verzeichnis nicht ausführbar. Dies ist eine Sicherheitsmassnahme die leider auch das Arbeiten erschwert.  Die Installation von R Paketen benutzt das TMP Verzeichnis als Ablage der zu installierenden Pakete. Einige R Pakete werden auf dem Zielsystem kompiliert. Dazu wird configure ausgeführt, dies schlägt Fehl auf diesen so geschützten Systemen. Um das Problem zu umgehen, muss  das TMP Verzeichnis das R benutzt, explizit gesetzt werden. Danach kann das Paket installiert werden.

Sys.setenv(TMPDIR="/home/jenkins_slave")
install.packages("sqldf")

Montag, 2. Februar 2015

Wachsende Bedeutung von R

R ist im universitären Umfeld eine durchaus Gebräuche Sprache und Analyse Software. Der Hauptvorteil der Software liegt in ihrer günstigen Beschaffung, R ist GPL. Aktuell legt R im Tiobe Index stetig zu, zur Zeit erreicht es (01-2015) Platz 18. Dieser Trend wird sich weiter gehen, in den nächsten Jahren ist ein R, Abwahl es eine Spezialsprache für statistische Auswertungen ist, zulegen. Natürlich wird es nie die Verbreitung eine Generell Purpose Sprache wie Java oder C erreichen. Generell gibt aber den Trend der Diversifizierung der Programmiersprachen. Das heisst, es wird keine  übermächtige Programmiersprache geben, sondern ein guter Strauß an Programmiersprachen, die unterschiedliche Ding gut können, neben einer Handvoll Generell Purpose Sprachen. Siehe auch http://programming-2.blogspot.de/2015/01/code-weaving.html
Die Gründe für eine wachsende Bedeutung und Verbreitung von R ist der, das man Big Data heute beherrscht, dass diese Daten auch ausgewertet werden müssen. Jüngst hat Oracle bekannt gegeben, das R durch die Datenbank selbst ausgeführt wird und dies auch noch parallel. Bei Oracle heisst das dann gleich Oracle R Enterprise. Neuerdings ist auch Microsoft auf R Analyse Pfaden und kauft die Firma Revolution Analytics (Link).
Splunk als Platzhirsch bei den kommerziellen Big Data Lösungen bietet etwas ähnliches, sehr einfallsreich R Projekt heisst. Sprung scheint aber noch im Bereich R noch nicht das Niveau von Oracle erreicht zu haben.
Im Open Source Bereich gibt es nichts entsprechendes. Natürlich kann man OS Bereich alles selber bauen. Optimal wäre wenn die Daten nicht zwischen Server transferiert werden müssten und man auch alle Prozessoren und Hauptspeicher der Server nutzen könnte. D.h. optimal wäre eine Integration von R in Elastik Search selbst.
Um das Bild weiter abzurunden, noch der Hinweis auf einen Analyse Software Stack, AMPLab der UC Berkley.

Sonntag, 1. Februar 2015

Splunk Alternativen

Wenn es heute um professionelle Big Data Lösungen oder Log File Analysen geht, dann ist die häufigste Antwort Splunk. Sprung ist wirklich eine gute Softwarelösung, skaliert gut und lässt sich sogar auf dem Laptop installieren. Für viele Anwender sind die Lizenzkosten der Hauptnachteil von Splunk. Deshalb schauen sich viel Unternehmen nach FOSS (Free and Open Source Software) Alternativen um. Je nach Anwendungsfall bieten sich zwei ähnliche Verfolger an, Elastic Search mit Kibana oder Graylog2. Graylog2 ist eine Java-Anwendung, Kibana ist JavaScript. Beide sind ein Elastic Search Frontend, Graylog2 geht aber noch darüber hinaus und bietet weitere Management-Funktionen bzw. ein Monitoring an.

Im Alltag sind sowohl Kibana als auch Graylog2 gut einsetzbar, man merkt ihnen aber noch deutlich ihr junges Alter an. Es gibt immer Dinge die fehlen. Keines der beiden Systeme kommt an den Funktionsumfang, die Benutzbarkeit oder die Robustheit von Splunk heran. Man muss klar sagen,  das Splunk zur Zeit mehrere Jahre Technologievorsprung hat gegenüber den beiden Verfolgern Kabine und Graylog2. Um den Technologiestack im Analysebereich abzurunden, sollte man noch R oder ggf. Python hinzuziehen. Alle Systeme nehmen Anfragen via REST-API entgegen. Leider liefert Elastic Search (Kibana, Graylog2) nur Daten als JSON. JSON ist wie XML für schnelle Datenanalysen nicht optimal geeignet und muss umgewandelt werden z.B. CSV.

Man kann Big Data Lösungen natürlich auch mit einem ganz anderen Softwarestack umsetzen, z.B. mit konventionellen relationalen Datenbanken und oder Filesystemen.

Donnerstag, 19. Juni 2014

Unit Test mit R, ganz einfach

Auch wenn R oft nicht als richtige Programmiersprache gilt, so gibt es auch in R die Möglichkeit Unit Test zu schreiben. Dafür stehen verschiedene Packages zur Verfügung:

  • RUnit
  • testthat
Hier ein minimales Einsteigerbeispiel mit testthat:


source("main/analyzeXltReport.R")
library(testthat)


test_that("Error Rates", {
  xltreport = loadXltXmlReport("test/testreport.xml")
  expect_that( getTranscationErrorCount(xltreport), equals(24) )
  expect_that( getAtionErrorCount(xltreport), equals(24) )
})

Zuerst wird die zu testende Datei geladen und dann das Testframework. Danach ruft man die Testmethode test_that auf mit einem guten Namen und dem eigentlichen Testcode.

Wenn man jetzt den Test ausführt liefert er beim Erfolg kein Ergebnis:
> source('~/git/lhotse-nfa/loadtest/analysis/test/analyzeXltReportTest.R')
> 
Bei Fehlern sieht es dann z.B. wie folgt aus:
> source('~/git/lhotse-nfa/loadtest/analysis/test/analyzeXltReportTest.R')
Fehler: Test failed: 'Error Rates'
Not expected: getTranscationErrorCount(xltreport) not equal to 20
Mean relative difference: 0.2.

Eine kleine Anmerkung, die Pfade in den R Scripten auch im Unit Test beziehen sich auf das aktuelle Directory!

Weitere Informationen zum Unit Testing mit R findet Ihr hier: 


Dienstag, 17. Juni 2014

Python vs. R

Im akademischen Bereich ist R schon lange eine wichtige Konstante wenn es darum geht statistische Auswertungen aka Data Science zu machen (Link). Lange wurde Python wegen seines guten Handlings von Daten als Ersatz für Mainstream-Anwendungen benutzt. Das Datenhandling war ähnlich einfach wie das in R.
R ist im Vergleich zu anderen Programmiersprachen gewöhnungsbedürftig (Link). Auch wenn diese Dinge wie Schleifen vs apply oder der Mangel an graphischen Interfaces (GUI), Blockkommentaren oder Multithreading berechtigt sind, so lässt sich R aber sehr komfortabel als Scriptsprache, wie unter anderem auch Python einsetzen.
Das führt auch  zu einer ständig wachsenden Beliebtheit dieser Sprache wie Redmonk in ihrem Ranking für Programmiersprachen feststellt feststellt (Link). Python schneidet bei diesen Rankings deutlich besser ab. Einen Anteil an der wachsenden Popularität von R hat das gute R IDE RStudio (Link), das abgesehen von der Doppelklick-Select-Word Anomalie sehr zu empfehlen ist.

Kurz zusammengefasst: R ist nicht tot sondern erfreut sich wachsender Beliebtheit und Python sowieso.

Dienstag, 14. Januar 2014

R Blog und R Buch

R ist als Programmiersprache optimal geeignet um Daten schnell zu analysieren. Vor allem im Big Data Umfeld ist R z.B. in Kombination mit SPLUNK oder Greylog2 ein sinnvolles Werkzeug nicht nur um Daten effizient zu analysieren sondern auch Reports zu erstellen. Dafür gibt es Pakete wie knitr, xtable oder ggplot. Leider ist die Bedienung der Pakete  Eine gute Seite zur Verwendung von R und komplexen Paketen ist die Seite Quick-R von  Robert I. Kabacoff. Die Seite bietet aber noch deutlich mehr. Robert I. Kabacoff ist gleichzeitig Autor des Buches R in Action. Dem Buch merkt mann doch deutlich den akademischen Hintergrund des Autors an und ist bei weitem nicht so praktisch wie die Website. Das Buch ist sich kein MUSS, bietet aber einen interessanten Einstieg in die aktuellen statistischen Modelle.

Dienstag, 11. Juni 2013

R: Jeden zweiten Wert aus eine Matrix auswählen

Ausgangsbasis war eine Matrix die doppelte Zeilen enthielt. Mit folgenden R Schnipsel reduziere ich die Matrix indem ich nur jeden zweiten Wert auswähle.
a = mymatrix[seq(1, dim(mymytrix)[1], 2),]
Die entscheidende Funktion ist hier das generieren einen Sequenz mit der Schrittweite 2.
seq(1, dim(mymatix)[1], 2)

Samstag, 6. April 2013

R in Version 3.0.0 erschienen

Es ist kaum zu glauben, aber mit der Version R 3.0.0 ist seit langer Zeit ein Major-Release für R erschienen (Link). Aus meiner Sicht sind die es trotz des Major Releases eher evolutionäre Änderungen, die einige Unschöne Dinge und Limits beseitigen. An einigen Stellen wurden für größere bzw. längere Daten geändert (Vektoren, RAM) die Performance nur leicht verbessert. Ich gehe davon aus, dass R bei normalen Aufgaben auch jetzt nicht besser mit der Anzahl der Prozessoren skalieren wird.

Donnerstag, 21. März 2013

Was ist die wichtigste Analyse Software?

Es gibt verschiedene Systeme mit den entsprechenden Sprachen für mathematische und statistische Analyse bzw. Business Intelligence (BI). SAS und S fühlen sich als Marktführer. Doch auch die Open Source Alternative R behauptet die dominierende Kraft zu sein. In einem Blogbeitrag von Robert A. Muenchen wird das Diskussionsaufkommen in verschiednen Bereichen als Indikator herangezogen. R dominiert das Feld deutlich vor Staat, SAS und SPSS. Jetzt kann man mehrere Einwende gegen dieses Messverfahren hervorbringen. Besonders anfällige Systeme erzeugen mehr Diskussionen als perfekte Systeme. Ich denke, das dies langfristig nicht haltbar ist, weil die Anzahl der Diskussionen in den Foren wesentlich stärker von der Menge der Benutzer abhängt als vom System selbst. Gibt es dafür Belege? Weiterhin ist nicht der kommerzielle Support in die Messung eingegangen, der im nichtöffentlichen Bereichen stattfindet z.B. in geschlossenen Foren oder via Email.
Wenn man aber weitere Quellen wie GULP oder Tiobe heranzieht, dann bestätigt sich das Bild, dass R das verbreitetste Analyse System ist. Allerdings ist nicht nicht nur Sonne auf der R Seite, es gibt zwar scheinbar für jedes Problem ein R-Paket, das sich meist einfach installieren lässt, aber viele Pakete werden nicht kontinuierlich gepflegt oder weiterentwickelt. Das liegt auch stark an der massiven Verbreitung von R im akademischen Bereich.
Übrigens gibt es ein oft übersehenen Konkurrenten zu R ist Python. Für Python gibt es gut numerische Pakete und sehr einfache Zugrissmöglichkeiten auf Matrizen. Zusammen mit diesen Paketen fühlt sich Python schon sehr R-like an, das ist wahrscheinlich warum Splunk intern auf Python setzt.

Mittwoch, 6. Oktober 2010

Freies R Lehrbuch


Wikipedia ist jedem Bekannt und ist heute so etwas wie ein kollektives Gedächtnis oder für viele eine Art dritte Gehirnhälfte. Neben dem Wikipedia-Projekt gibt es weitere Projekte, z.B. Wikibooks. Wikibooks sind Lehrbücher zu speziellen Themen. Zur Zeit helfe ich bei der Erstellung eines Buchs über die Statistik-Software und Sprache R. Helfer sind gern willkommen. Ein allgemeines Problem bei den Wikibooks ist, dass viel Experten zwar tiefgreifendes Expertenwissen haben aber nicht in der Lage sind, leicht verständliche Texte zu schreiben. Ein Grund dafür ist, dass die Experten meist ein Uni-Karriere hinter sich haben und dem entsprechend sozialisiert sind. Ihr Schreibstiel ist eher kompliziert und akademisch und weniger erklärend. Aus diesem Grund ist es wichtig, dass nicht nur Fachexperten bei Wikibooks helfen, sondern auch normale Anwender. Bitte helft mit, nicht nur Experten sind wichtig um gute Bücher zu schreiben.

Freitag, 24. September 2010

R Plugin für Eclipse

Auch für gibt es ein Eclipse-Plugin. Hier beschreibe ich wie ich eine funktionierende R Installation mittel StatET-Plugins in Eclipse nutze.

  1. Installation von SatET via Update-Site
  2. Konfigurieren des Proxys für R in der Konsole: export http_proxy=http://proxy:8080
  3. Starte von R in der Konsole: R
  4. Installation des R-Paketes rJava: install.packages('rJava')
  5. Laden des Paktes rJava: library(rJava)
  6. Testen des Pakets und Beenden von R: q()
  7. Download des rj Paketes mit dem Webbrowser
  8. Installation des rj Paketes in der Konsole:  R CMD INSTALL --no-test-load rj_0.5.0-5.tar 
  9. Konfiguration von StatET in Eclipse

Dienstag, 13. Juli 2010

R auf dem Mac

R auf dem Mac stellt mich vor einige Hürden.

Die erste Hürde war die Konfiguration des Proxy. Leider verwendet R nicht die Systemeinstellungen und im Preferences-Fenster gab es keine passendes Feld. Also muss der Proxy in der R Konsole eingestellt werden: Sys.setenv(http_proxy="http://proxy:1234")

Die zweite Hürde trat auf bei der Installation ein Source-Pakets.
R CMD INSTALL Desktop/GenABEL_1.6-0.tar.gz 

* installing to library ‘/Users/mirkoebert/Library/R/2.11/library’
* installing *source* package ‘GenABEL’ ...
** libs
*** arch - i386
sh: make: command not found
ERROR: compilation failed for package ‘GenABEL’
* removing ‘/Users/mirkoebert/Library/R/2.11/library/GenABEL’



Es fehlte make. Um dies zu beheben muss man Apples XCode installieren. Dazu muss man sich bei Apple kostenlos registrieren lassen. Danach funktionierte die Paketinstallation reibungslos.


Nachtrag 01-2015:
Heute ist sehr einfach geworden R auf dem Mac zum laufen zu bringen. Mittel Paketmanager homebrew läßt sich jetzt ohne Problem installieren:
brew tap homebrew/science
brew install R