Hilfe beim Aggregieren und Korrelieren

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

Moderatoren: EDi, jogo

Antworten
swas

Hilfe beim Aggregieren und Korrelieren

Beitrag von swas »

Hallo,

ich habe mal eine Frage zum Thema Aggregation und Korrelation.

Ich habe Datensätze die in etwa so aussehen:
|Ort|Anz |
|A | 4 |
|B | 3 |
|A | 6 |

Ich möchte nun diesen Datensatz nach dem Ort aggregieren. Das mache ich so:

Code: Alles auswählen

aggregate(orte, by=list(orte$ort), FUN=sum, na.rm=TRUE)
Nur ich bekomme hier den Fehler ‘sum’ not meaningful for factors. Leider kam ich mit meiner Suche nach einer Lösung nicht wirklich weiter. Falls mir hier jemand weiterhelfen könnte wäre ich sehr dankbar.

Nun zur Korrelation. Ich habe verschieden große Datensätze bspw. einen mit 400 und einen mit 295. Und ich würde gerne die Korrelation der beiden Datensätze erhalten. Nur leider bekomme ich es nicht hin entweder den kleineren Datensatz auf 400 Beobachtungen zu bringen oder den größeren passend zu verkleinern. Könnte mir hier jemand einen kleinen Tipp geben?

Gruß,
swas
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe beim Aggregieren und Korrelieren

Beitrag von jogo »

Hallo swas,

ist nur ein Tippfehler:

Code: Alles auswählen

aggregate(orte$Anz, by=list(orte$Ort), FUN=sum, na.rm=TRUE)
bzw. (ich bevorzuge das formula-Interface von aggregate()):

Code: Alles auswählen

aggregate(Anz ~ Ort, data=orte, FUN=sum, na.rm=TRUE)
Das andere (mit der Korrelation) habe ich nicht verstanden.
Kannst Du bitte den output von

Code: Alles auswählen

str(orte)
in Deine nächste Nachricht kopieren und nochmal erläutern?

Gruß, Jörg
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe beim Aggregieren und Korrelieren

Beitrag von bigben »

Hallo swas,

Korrelationen gibt es nur bei verbundenen Datensätzen. Dass Deine Datensätze unterschiedlich lang sind, spricht ganz erheblich dafür, dass es entweder keine verbundenen Datensätze sind oder die Information über die Verbindung verloren gegangen ist. Mein Tipp ist daher: Manipuliere nicht die Daten, sondern hinterfrage Dein Ansinnen!

Bitte frage Dich sehr gründlich, was eine Korrelation zwischen beiden Datensätzen sein soll und wenn Du danach noch korrelieren willst, dann frag hier nochmal nach. Aber bitte mit einer ausführlichen Beschreibung, was das für Daten sind und was Du über sie wissen willst.

Viele Grüße,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
swas

Re: Hilfe beim Aggregieren und Korrelieren

Beitrag von swas »

Hallo Jörg,

Danke dir ich dachte bei aggregate muss vorne das Dataframe rein.. :D

So zum Thema Korrelation, die Ausgabe von str gibt folgendes:

Code: Alles auswählen

str(orte1)
'data.frame':	403 obs. of  2 variables:
 $ Ort: Factor w/ 1014 levels "A","B",..: 1 2 7 10 11 15 16 19 27 28 ...
 $ Anz: num  11 7 44 20 11 20 13 28 10 23 ...

Code: Alles auswählen

str(orte2)
'data.frame':	295 obs. of  2 variables:
 $ Ort: Factor w/ 1014 levels "A","B",..: 16 27 39 41 42 47 48 49 59 85 ...
 $ Anz: num  1 1 1 2 1 1 8 12 1 1 ...
Im Prinzip steht in beiden Dataframes eine Variable drin. Nur bei orte1 gibt es halt mehr Beobachtungen. Ich wollte jetzt entweder die orte2 auffüllen mit leeren Daten oder orte1 verringern auf die Daten die in orte2 vorhanden sind. Weiß leider nur nicht was geschickter ist und wie das genau gemacht wird.

Spontan eine Idee wäre die Einträge aus orte2$Ort herauszuholen und dann als Filter zu nutzen um die passenden Werte aus orte2 zu holen.

Gruß,
swas
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe beim Aggregieren und Korrelieren

Beitrag von jogo »

Hallo swas,

bringt Dir merge() etwas:

Code: Alles auswählen

orte1$Ort <- as.character(orte1$Ort)
orte2$Ort <- as.character(orte2$Ort)
merge(orte1, orte2, by="Ort")
:?:

Gruß, Jörg
swas

Re: Hilfe beim Aggregieren und Korrelieren

Beitrag von swas »

Hallo Jörg,

ah ja ich denke das wird mir deutlich weiterhelfen. Irgendwie ist mir das Factor völlig entgangen beim Ort.

Vielen herzlichen Dank!

Gruß,
swas
Antworten