Artikelformat

Blutdruck-Statistik mit R

Da ich wohl nicht der einzige bin, der mit Bluthochdruck zu kämpfen hat, hier mal eine kleine Erklärung wie ich meine Blutdruckstatistiken mache. Zunächst mal braucht man natürlich ein Messgerät und sollte sich die Werte aufschreiben, ich notiere die Messergebnisse (eines am Morgen, eines am Abend) erstmal auf einem Zettel und einmal pro Woche wird das in den PC getippt.

Für die Erfassung nehme ich eine simple Textdatei die so aussieht:

Hier sieht man schon die Struktur der Datei. Wichtig ist die erste Zeile, denn sie enthält die Variablennamen welche später im R-Script verwendet werden. Die Datei hat dann pro Messwert eine Zeile in der das Datum (TT.MM.JJ) steht, danach die Uhrzeit und dann die drei Messwerte die das Blutdruckmessgerät ausspuckt.

Um diese Datei dann auswerten zu können braucht es das Statistik-Tool „R“ und ein paar Zeilen in R. Die Statistik nutzt zur graphischen Ausgabe die Bibliothek „ggplot2“ und bei Debian Wheezy ist leider eine etwas ältere Version dabei, die so nicht funktioniert. Darum habe ich nicht das Paket aus Wheezy genommen sondern es innerhalb von R mit

nachinstalliert. Das in R geschriebene Programm fängt erst mal mit dem Einbinden der benötigten Bibliotheken an und definiert eine Funktion um die letzten „n“ Zeilen aus einem Dataframe zu extrahieren.

Das mit dem Begrenzen auf die letzten Zeilen kann man möglicherweise auch noch eleganter machen, aber es funktioniert auch so wie es dasteht. Nun folgt der Teil der die Datendatei einliest. Diese heißt bei mir sinnigerweise „daten.txt“ und das ist fest so im R-Code verankert.

Die erste Zeile dieses Blocks liest die Daten ein. Datum und Uhrzeit wären jetzt als „characters“ hinterlegt was für die weitere Bearbeitung nicht so gut wäre. Daher wandelt die nächste Codezeile das in einen Zeitstempel um und die dritte Zeile verwirft die Spalten mit dem aus der Datei gelesenen Datum und der Zeit.

Für die nützlichen Graphiken betrachte ich nur den Zeitraum der letzten 60 Messungen.

Der erste Block ruft die selbstdefinierte Funktion auf und gibt die letzten 60 Werte zurück. Der zweite Block transformiert die Daten so, dass wir einen Dataframe bekommen der den Zeitstempel enthält, eine Variable mit dem Spaltennamen (also „Sys“, „Dia“ und „Pulse“) sowie dem Value, also dem Wert der in der entsprechenden Spalte stand. All das macht die „melt“-Funktion recht problemlos. Der nächste Block produziert die Liniengraphik:

Das Ergebnis dieser Zeile sieht dann so aus:

blutdruck-linesAls nächstes habe ich spaßhalber mal mit einem Scatter-Plot experimentiert um zu sehen, ob es zwischen den „Sys“ und „Dia“ Werten eine Korrelation gibt. Also die Vermutung ist, dass ein hoher Wert vom einen auch einen hohen Wert vom anderen ergibt.  Und die Punktewolke daher irgendwie „diagonal“ aussehen sollte.

Der Code hierfür sieht so aus:

Und der damit erzeugte Scatterplot aus allen 2600 Messwerten die ich bis heute gesammelt habe sieht so aus und belegt die These: blutdruck-scatterViel interessanter als dieser Scatterplot den ich wie gesagt nur aus Experimentierfreude gemacht habe ist aber ein Histogramm der letzten Messwerte, also die Aussage in welchen Bereichen wie häufig Werte auftraten. Das Histogramm wird mit folgendem Code-Schnipsel erzeugt:

Und das damit erzeugte Histogram sieht dann so aus:
blutdruck-histoSomit habe ich mit 36 Zeilen in „R“ eine recht aussagekräftige Blutdruckstatistik erzeugt die jederzeit mit aktuellen Daten ausgewertet werden kann. Damit ihr die Datei nicht aus Schnipseln zusammensetzen müsst könnt ihr sie hier auch runterladen. Ich habe sie mal mit der Endung „.txt“ versehen um sie hier in WordPress hochladen zu können (das mag nämlich keine „.R“-Dateien. Also ggf. noch anpassen.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 von 5)

Loading...

Autor: Rainer

Diplom-Informatiker, Baujahr 1961, Vater von 2 Kindern, Hundehalter, Sportschütze und Vereinsvorstand, Hobbymusiker (mit zweifelhaftem Erfolg), politisch interessiert, Leseratte, Freizeit-Philosoph und letztlich Blogger.

2 Kommentare

  1. Ich nutze R auch für die anzufertigen Statistiken. Fas einzige, was mir noch nie gelungen ist, ist das anfertigen einer Gaußschen Glockenkurve. Weißt du, wie man das macht?