Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
ekw

Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von ekw »

Hallo :) ,

ich habe eine Studie für meine Bachelor Thesis gemacht. Ich habe nun relativ viele numerische Variablen (über 100) und ein Paar nicht numerische (wie zum Beispiel eine ID-Variable und Land). Ich möchte nun einmal die Korrelation aller numerischen Variablen einmal mit der numerischen Geschlechtsvariable berechnen, um zu schauen, ob es dort interessante Korrelationen gibt. Dies möchte ich entweder plotten, oder als Matrix darstellen.

Gibt es eine Möglichkeit dies durch einen Befehl automatisch durchlaufen zu lassen, ohne jedes einzelne Element eintippen zu müssen. Bei der ANzahl dauert das ja ansonsten Stunden ....Ich habe das Netz schon durchforstet und leider nichts entsprechendes gefunden :(

Über eine Antwort würde ich mich sehr freuen :D

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

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von jogo »

Hallo Elena,

Code: Alles auswählen

d <- iris
cor(subset(d, select=-Species)) # bzw.
cor(subset(d, select=-c(Species, Sepal.Width)), d$Sepal.Width)
- bei Dir dann:

Code: Alles auswählen

cor(subset(DeinDataframe, select=-c(ID.Variable, Land)), DeinDataframe$Geschlechtsvariable)
Gruß, Jörg
ekw

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von ekw »

Danke Jörg!!

Code: Alles auswählen

cor(subset(DeinDataframe, select=-c(ID.Variable, Land)), DeinDataframe$Geschlechtsvariable)
auf meins anwende sieht es so aus :

Code: Alles auswählen

> cor(subset(mclean10, select=-c(id, herkunft),mclean10$Geschlecht)
+ 
Was muss ich tun, damit es mir angezeigt, bzw. geplottet wird. Die einfache

Code: Alles auswählen

plot()
Funktion klappt nicht :?:

Ich bin so am Verzweiflen mit R, dass ich schon überlege mit SPSS anzufangen ...
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von bigben »

ekw hat geschrieben: Di Sep 05, 2017 2:42 pm

Code: Alles auswählen

> cor(subset(mclean10, select=-c(id, herkunft),mclean10$Geschlecht)
+ 
Das '+' am Ende sagt, dass R auf weitere Eingaben wartet. Grund dafür ist, dass Du dreimal eine Klammer auf und nur zweimal eine Klammer zu gemacht hast.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von bigben »

ekw hat geschrieben: Di Sep 05, 2017 2:42 pmIch bin so am Verzweiflen mit R, dass ich schon überlege mit SPSS anzufangen ...
Würdest Du dann auch einfach alle schiefgelaufenen Befehle in ein Forum kopieren? Oder würdest Du textreich beschreiben, was Du wo wie angeklickt hast und wie die Tabelle aussah, die SPSS ausgegeben hat? Könnten wir Dir Vorschläge, wie es anders geht, einfach so hier ins Forum tippen, wenn das alles über Anklicken zu steuern wäre?
Wer SPSS professionell benutzt, nutzt oft auch die SYNTAX von SPSS und nicht mehr das Maus-Klick-Interface.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von jogo »

Hallo Elena
ekw hat geschrieben: Di Sep 05, 2017 2:42 pm

Code: Alles auswählen

cor(subset(DeinDataframe, select=-c(ID.Variable, Land)), DeinDataframe$Geschlechtsvariable)
auf meins anwende sieht es so aus :

Code: Alles auswählen

> cor(subset(mclean10, select=-c(id, herkunft),mclean10$Geschlecht)
+ 
Du hast hier vergessen, die Funktion subset() abzuschließen; richtig muss es sein:

Code: Alles auswählen

cor(subset(mclean10, select=-c(id, herkunft)), mclean10$Geschlecht)
(Jetzt gibt es drei öffnende und drei schließende Klammern in der Codezeile.)
Hoffentlich hast Du auch beachtet, dass R casesensitive ist und es nicht Herkunft oder herKunft oder hERKUNFT heißt - das sind nämlich alles verschiedenen Sachen für R.
Was muss ich tun, damit es mir angezeigt, bzw. geplottet wird. Die einfache

Code: Alles auswählen

plot()
Funktion klappt nicht :?:
Ein Funktionsaufruf ohne Parameter (also ohne Daten) ist zwar möglich, aber sollte eine/einen etwas stutzig machen. Das ist wie der Unterschied zwischen sqrt(5) und sqrt() . Die Funktion plot() möchte auf alle Fälle Parameter haben, siehe:

Code: Alles auswählen

example(plot) # ja, auch die Funktion example() möchte einen Parameter haben
Welche Parameter plot() haben möchte, steht wie immer im Hilfetext:

Code: Alles auswählen

?plot
help(plot)
help("plot")
help() ist eine Funktion, die man auch ohne Parameter aufrufen kann - sie liefert dann den Hilfetext der Funktion help()

Code: Alles auswählen

help()
help(help)
Ich bin so am Verzweiflen mit R, dass ich schon überlege mit SPSS anzufangen ...
hm, wenn Du unbedingt verzweifeln möchtest, kannst Du das gerne auch mit SPSS tun ...
Darkwing Duck sagt dazu: "Verzweifelte Situationen erfordern verzweifelte Maßnahmen!"

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

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von bigben »

jogo hat geschrieben: Di Sep 05, 2017 3:06 pm
Ich bin so am Verzweiflen mit R, dass ich schon überlege mit SPSS anzufangen ...
hm, wenn Du unbedingt verzweifeln möchtest, kannst Du das gerne auch mit SPSS tun ...
Darkwing Duck sagt dazu: "Verzweifelte Situationen erfordern verzweifelte Maßnahmen!"

SCNR, Jörg
Also wenn Du Dich einfach nur mit einem anderen Programm statt mit Deinem Problem befassen möchtest oder wenn Du glaubst, dass das Vorhandensein von Buttons und Menüs darüber entscheidet, ob Du Fehler machst, oder nicht, dann hilft billiger als SPSS vielleicht auch schon das hier: https://www.youtube.com/watch?v=59xUnQhfI6E
Der Autor ist häufiger mal im Forum unterwegs ;-)

SPSS soll ja gar kein schlechtes Programm sein, wenn man es sich leisten kann. Wovon Du aber wirklich die Finger lassen solltest, ist statistische Analyse in Excel.

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

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von ekw »

Würdest Du dann auch einfach alle schiefgelaufenen Befehle in ein Forum kopieren? Oder würdest Du textreich beschreiben, was Du wo wie angeklickt hast und wie die Tabelle aussah, die SPSS ausgegeben hat? Könnten wir Dir Vorschläge, wie es anders geht, einfach so hier ins Forum tippen, wenn das alles über Anklicken zu steuern wäre?
Wer SPSS professionell benutzt, nutzt oft auch die SYNTAX von SPSS und nicht mehr das Maus-Klick-Interface.
Ich habe nur von vielen Leuten aus meiner Umgebung gehört, dass SPSS schneller zu "durchschauen" ist als R. Ich habe R gewählt, weil mein BA Betreuer sich besser mit R, als mit SPSS auskennt.

Da ich noch nicht viele Erfahrungen mit R gemacht habe, ist es für mich als Laien, manchmal schwierig nachzuvollziehen, wo genau welcher Fehler entstanden ist. Ich habe einfach das Gefühl, sobald man einen Fehler behoben hat, entsteht direkt der nächste ....
SPSS soll ja gar kein schlechtes Programm sein, wenn man es sich leisten kann. Wovon Du aber wirklich die Finger lassen solltest, ist statistische Analyse in Excel.
Durch die Uni kriegt man SPSS quasi umsonst, und dass Excel nicht ausreicht versteht sich von selbst :D
Ein Funktionsaufruf ohne Parameter (also ohne Daten) ist zwar möglich, aber sollte eine/einen etwas stutzig machen. Das ist wie der Unterschied zwischen sqrt(5) und sqrt() . Die Funktion plot() möchte auf alle Fälle Parameter haben, siehe:
Trotzdem vielen Dank für eure Hilfe :)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Möglichkeit Korrelation aller numerischen Variablen (<100) mit einer Variablzu berechen?

Beitrag von bigben »

ekw hat geschrieben: Mi Sep 06, 2017 10:48 amIch habe R gewählt, weil mein BA Betreuer sich besser mit R, als mit SPSS auskennt.
Das ist schon ein recht guter Grund.

ekw hat geschrieben: Mi Sep 06, 2017 10:48 amDa ich noch nicht viele Erfahrungen mit R gemacht habe, ist es für mich als Laien, manchmal schwierig nachzuvollziehen, wo genau welcher Fehler entstanden ist.
Glaub mir, wenn das Maß an Komplexität ein wenig steigt, dann ist das bei SPSS auch so. Es ist halt schwerer, dann das eigene Vorgehen in einem Forum zu posten.

ekw hat geschrieben: Mi Sep 06, 2017 10:48 amIch habe einfach das Gefühl, sobald man einen Fehler behoben hat, entsteht direkt der nächste ....
Wir nennen es Lernkurve -- Du musst einfach daran glauben, dass Du dabei schlauer wirst. Dazu ist das Studium doch da.
ekw hat geschrieben: Mi Sep 06, 2017 10:48 amDurch die Uni kriegt man SPSS quasi umsonst, und dass Excel nicht ausreicht versteht sich von selbst :D
Ja, das soll so sein. Ich habe aber auch schon sehr viele Leute über diese scheinbar kostenlosen, dafür aber zeitlich begrenzten, Lizenzen fluchen hören. Das Freischalten klappt dann auf einmal auf Apple nicht oder die Lizenz läuft drei Tage vor der letzten Änderung am Konzept ab und so weiter. Dessen ungeachtet: Mit diesen Quasi-kostenlos-Lizenzen will IBM natürlich Leute ködern und schafft das auch. Die Verbreitung von SPSS spricht für sich und Du solltest die Gelegenheit nutzen, Dir SPSS preiswert anschauen zu können.
Versprochen ist, dass Du das erworbene R-Wissen auf jedem Rechner Deiner Wahl kostenlos anwenden kannst. Ob Du nach der Uni einen Arbeitgeber hast, der Dir so ein irrsinnig teures System zur Verfügung stellt, weißt Du noch nicht.
ekw hat geschrieben: Mi Sep 06, 2017 10:48 amTrotzdem vielen Dank für eure Hilfe :)
Das war jetzt irgendwie noch keine Antwort auf die naheliegende Frage, ob es mit dem Klammer_zu an der richtigen Stelle denn jetzt läuft.


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