Kann R mein Problem lösen?

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
famato

Kann R mein Problem lösen?

Beitrag von famato »

Hallo zusammen,

ich habe wenig Erfahrung in R und würde gerne wissen, ob eurer Einschätzung nach folgendes in R umzusetzen ist:

Szenario:
Ich betrachte Personen die alle die gleiche Krankheit haben und sich an einem bestimmten Ort angesteckt haben. Ich möchte herausfinden wo die Personen sich am wahrscheinlichsten angesteckt haben.

Die Daten sind in einer Excel Datei welche wie folgt aufgebaut ist:

Spalten:
Personen-ID/Datum & Uhrzeit/Ortsangabe A/Ortsangabe B/Ortsangabe C
Die Ortsangaben A-C beziehen sich auf den gleichen Ort geben nur unterschiedliche Informationen wieder.

Zeilen:
Ein Eintrag pro Person pro Ortsbesuch. Besucht eine Person den gleichen Ort zweimal sind zwei Einträge vorhanden.


Wäre es möglich mit R automatisiert herauszufinden in welchem Ort sich die meisten Personen aufgehalten haben und diese Abfrage wie ein Excel-Makro abzuspeichern in die man immer wieder nur neue Daten einspielt?

Vielen Dank für eure Einschätzung!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Kann R mein Problem lösen?

Beitrag von bigben »

Hallo famato,

R kann das. Ob Du das mit R kannst, wird man sehen müssen. Ich verstehe nicht, was in den "Zellen" (um vorübergehend im Excel-Jargon zu bleiben) drin steht.
Die Ortsangaben A-C beziehen sich auf den gleichen Ort geben nur unterschiedliche Informationen wieder.
Das ist für mich rätselhaft. Wenn alle Angaben sich auf den gleichen Ort beziehen, wie soll man dann herausfinden, wie sich verschiedene Orte zueinander verhalten? Erklär doch bitte die Informationen, und was Du herauslesen willst. Ein praktisches Beispiel mit ein paar Musterdaten und einer Erklärung, wie der Output aussehen soll, wäre echt hilfreich.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
famato

Re: Kann R mein Problem lösen?

Beitrag von famato »

Hallo Bernhard,

vielen Dank schon einmal für deine Antwort!
Die Informationen in den Spalten Ortsangabe A-C sollten jeweils als eigener Ort angesehen werden. Es handelt sich hierbei um Angaben in welchem Viertel man sich aufgehalten hat, wenn sich Personen im gleichen Viertel aufgehalten haben dann stehen diese Viertel immer unter der gleichen Ortsangabe. In der Beispiel Tabelle würde demnach Berlin-Schönefeld immer in Ortsangabe A stehen.

Die Tabelle könnte so aussehen:

Personen ID / Datum / Ortsangabe A / Ortsangabe B / Ortsangabe C
1 / 15.1 / Berlin-Schönefeld / Berlin-Alexanderplatz /Berlin-Friedrichshein
2 / 14.1 / Hamburg Altona / Hamburg Hafencity / Hamburg Schanzenviertel
2 / 10.1 / Berlin-Schönefeld / Berlin Mitte / Berlin West

Als Auswertung bräuchte ich z.B. eine Tabelle mit der Information welche Ortsangabe am Häufigsten vorkommt (alle Einträge können absteigend aufgelistet werden):

Wert / Ortsangabe / Besucher
Berlin-Schönefeld / A / 2
Berlin Mitte / A / 1
Hamburg Altona / A / 1
etc

Der Output kann auch in einer anderen Form dargestellt werden wichtig ist nur, dass die Information herausgelesen werden kann.

Viele Grüße
Famato
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Kann R mein Problem lösen?

Beitrag von jogo »

Hallo Famato,

willkommen im Forum! Das klingt nach einem interessanten Problem (vielleicht im Bereich Graphentheorie oder Netzplantechnik).
Ist das Verfahren bekannt, mit dem Du die Daten bearbeiten willst?
Wenn nicht, kannst Du beschreiben, wie sich die Wahrscheinlichkeit bestimmen soll?
Sind Deine Daten sowas wie: "wann war wer an welcher Infektionsquelle" ?
Spielt dann nicht noch die Inkubationszeit, Zeit des Befundes, Stadium zum Zeitpunkt des Befundes, Intensität der Infektionsquelle eine Rolle?

Gruß, Jörg
famato

Re: Kann R mein Problem lösen?

Beitrag von famato »

Hallo Jörg,

vielen Dank für den Empfang im Forum!
Ich habe noch keine Vorstellung welches Verfahren ich verwenden möchte/müsste. Ich benötige aber auch keine genau berechneten Wahrscheinlichkeiten sondern einfach nur eine Auflisten nach den meisten Anschlägen.

Themen wie Inkubationszeit, Zeit des Befundes...etc spielen in meinem Modell keine Rolle da ich die Annahme treffen kann, dass wenn sich eine Person an dem Ort der Infektionsquelle aufgehalten hat, sie sich auch angesteckt. Wichtig wäre nur, dass ich die Analyse immer wieder mit neuen Daten wiederholen kann. Dabei sollte es keine Rolle spielen wie viele Personen betrachtet werden.

Viele Grüße
Famato
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Kann R mein Problem lösen?

Beitrag von EDi »

Ich denke das könnte tun was du möchtest:

Code: Alles auswählen

# Load data ---------------------------------------------------------------
#
# load from data provided
df <- read.table(header = TRUE, sep = '/', stringsAsFactors = FALSE,
text = 'Personen ID / Datum / Ortsangabe A / Ortsangabe B / Ortsangabe C
1 / 15.1 / Berlin-Schönefeld / Berlin-Alexanderplatz /Berlin-Friedrichshein
2 / 14.1 / Hamburg Altona / Hamburg Hafencity / Hamburg Schanzenviertel
2 / 10.1 / Berlin-Schönefeld / Berlin Mitte / Berlin West')


# Clean data --------------------------------------------------------------
#
# bring long format
# library(tidyr)
df_long <- gather(df, 'Angabe', value = 'Ort', -Personen.ID, -  Datum)
# trim whitespace
df_long$Ort <- gsub("^\\s+|\\s+$", "", df_long$Ort)


# Analyse data ------------------------------------------------------------
# 
# aggregate
library(data.table)
setDT(df_long)
# count numbers of rows per Angabe & Ort
df_long[ , .N, by = list(Angabe, Ort)]
Wenn man wollte könnte man sich auch die ein oder andere Zeile sparen (z.b. aggregat() anstatt data.table nutzen, ...)
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
famato

Re: Kann R mein Problem lösen?

Beitrag von famato »

Hallo EDI

vielen Dank für diese Vorlage!! Ich werde versuchen das heute oder morgen mal auszuprobieren


:) Hoffentlich klappt das!
Antworten