Daten sind alle als Character statt Numeric

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

Moderatoren: EDi, jogo

TheMikka123
Beiträge: 5
Registriert: So Dez 06, 2020 9:43 pm

Daten sind alle als Character statt Numeric

Beitrag von TheMikka123 »

Hallo zusammen,

ich habe mich gerade in R eingearbeitet und versuche eine erste Auswertung.
Ich habe es mitlerweile soweit geschafft, dass die Daten in R eingelesen wurden und auch richtig in der Tabelle angezeigt werden.
Allerdings kann ich keine einzige Funktion verwenden, weil die Daten anscheiendn nicht als numeric konvertiert sind, sondern als characters.

Ich habe alles versucht und auch neu eingelesen usw. Die Daten stammen aus einer CSV Datei aus dem Sosci Survey.
Beim importieren im RStudio sagt er auch, dass die Daten dieser Spalte als numeric formatiert sind, aber wenn ich dann mit der Funktion "mean" oder "typeof" den Datentyp abfrage oder den Mittelwert bilden möchte, kommt die Fehlermeldung:
Argument ist weder numerisch noch boolesch: gebe NA zurück

Ich weiß nicht, was ich da machen soll. Das kann ja nicht so schwer sein, auch aus Sosci Survey Daten zu importieren, damit alles funktioniert.

Hat einer einen Tipp ?
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Daten sind alle als Character statt Numeric

Beitrag von EDi »

Zeig uns mal die Ausgabe von ?str auf deinen Datensatz angewendet...
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.
TheMikka123
Beiträge: 5
Registriert: So Dez 06, 2020 9:43 pm

Re: Daten sind alle als Character statt Numeric

Beitrag von TheMikka123 »

Hier die Ausgabe, wenn das so reicht.
Dort sieht man rechts, dass die Daten bei "Alter" zB als Numeric eingelesen sind. Aber wenn ich die Abfrage mache wird character angezeigt, wodurch wahrscheinlich dann auch die Mittelwertfunktion zB nicht funktioniert.
Oder kennt er die Spaltennamen nicht, sodass deshalb die Funktion nicht auf "Alter" angewandt wird. Wie realisiere ich denn, dass er die Spaltennamen bzw. Variablen den Datenzuordnet.
Ausgabe R_2.JPG
Ausgabe R_1.JPG
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten sind alle als Character statt Numeric

Beitrag von jogo »

TheMikka123 hat geschrieben: Mo Dez 07, 2020 7:24 am Dort sieht man rechts, dass die Daten bei "Alter" zB als Numeric eingelesen sind. Aber wenn ich die Abfrage mache wird character angezeigt, wodurch wahrscheinlich dann auch die Mittelwertfunktion zB nicht funktioniert.
Was meinst Du mit "wenn ich die Abfrage mache" :?:
Die Spalte heißt auch nicht Alter sondern Alter : ... Jahre (oder so ähnlich)
Vielleicht möchtest Du die Spalte umbenennen.
Es ist jedenfalls die dritte Spalte; insofern sollte

Code: Alles auswählen

mean(data_final[[3]])
klappen oder auch

Code: Alles auswählen

mean(data_final[, 3])
Gruß, Jörg
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Daten sind alle als Character statt Numeric

Beitrag von bigben »

Mit "die Abfrage machen" ist bestimmt der Aufruf von typeof(Alter) gemeint, der im ersten der beiden Screenshots steht.
Bestimmt gibt es da noch neben dem Dataframe data_final eine Variable "Alter" die nicht in diesem Dataframe steckt und die die Verwirrung erklärt. Mach mal ein

Code: Alles auswählen

rm(Alter)
Dann wird diese Variable Alter gelöscht und erweckt nicht mehr den Eindruck, dass Du auf eine Spalte im Dataframe zugreifst, während Du wirklich auf etwas ganz anderes zugreifst.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
TheMikka123
Beiträge: 5
Registriert: So Dez 06, 2020 9:43 pm

Re: Daten sind alle als Character statt Numeric

Beitrag von TheMikka123 »

Ah super vielen Dank euch beiden.

Dann werde ich das nochmal testen und mich dann nochmal melden.
Ja genau mit der "Abfrage" war die FUnktion typeof gemeint, womit ich testen sollte in welcher Formatierung die Daten denn nun eingelesen sind (Numeric usw.).

Aber wenn ich es mit den anderen Spalten versuche, die ja wirklich dann "Sprache" oder "Geschlecht" heißen kommt die gleiche Meldung. Da dürfte ja eigentlich keine andere Variable existieren, die so benannt ist. Muss in den Klammern bei der variable eigl. der Name in Anführungszeichen oder nicht. Wenn ich es ohne mache findet er nichts und wenn ich es mit " " mache dann kommt es zu diesem Fehler. Wobei in allen Tutorials immer in der Klammer ohne " " gearbeitet wird.

Vielleicht hat noch jemand ein Code oder den kurzen Tipps, wie ich alle Data Frames und alles komplett nochmal löschen kann und von neu anfangen, damit es nicht mehr zu den Verwirrungen kommen kann...

Danke vielmals.
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten sind alle als Character statt Numeric

Beitrag von jogo »

TheMikka123 hat geschrieben: Mo Dez 07, 2020 9:51 am Ah super vielen Dank euch beiden.

Dann werde ich das nochmal testen und mich dann nochmal melden.
Ja genau mit der "Abfrage" war die FUnktion typeof gemeint, womit ich testen sollte in welcher Formatierung die Daten denn nun eingelesen sind (Numeric usw.).

Aber wenn ich es mit den anderen Spalten versuche, die ja wirklich dann "Sprache" oder "Geschlecht" heißen kommt die gleiche Meldung.
Du machst wahrscheinlich nicht

Code: Alles auswählen

typeof(data_final$Sprache)
richtig?
Da dürfte ja eigentlich keine andere Variable existieren, die so benannt ist. Muss in den Klammern bei der variable eigl. der Name in Anführungszeichen oder nicht. Wenn ich es ohne mache findet er nichts und wenn ich es mit " " mache dann kommt es zu diesem Fehler. Wobei in allen Tutorials immer in der Klammer ohne " " gearbeitet wird.
Bitte zeige uns hier erstmal Deinen Code.
Es gibt verschiedene Möglichkeiten, auf eine Spalte eines Dataframes zuzugreifen. Mindestens eine Variante benötigt "..." - andere nicht.
Vielleicht hat noch jemand ein Code oder den kurzen Tipps, wie ich alle Data Frames und alles komplett nochmal löschen kann und von neu anfangen, damit es nicht mehr zu den Verwirrungen kommen kann...
in RStudion gibt es den Feger für die Enviroment, um alle Objekte zu Löschen.
Wenn man schon mal dabei ist, kann man auch gleich eine neue R-Session starten (Menüpunkt irgendwo).

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

Re: Daten sind alle als Character statt Numeric

Beitrag von bigben »

TheMikka123 hat geschrieben: Mo Dez 07, 2020 9:51 amAber wenn ich es mit den anderen Spalten versuche, die ja wirklich dann "Sprache" oder "Geschlecht" heißen kommt die gleiche Meldung.
Gegenfrage: Hast Du im nicht-sichtbaren Teil des Codes die Funktion attach() verwendet? Alternativ, wenn Du Dir nicht sicher bist, was sagt

Code: Alles auswählen

search()
?
Vielleicht hat noch jemand ein Code oder den kurzen Tipps, wie ich alle Data Frames und alles komplett nochmal löschen kann und von neu anfangen, damit es nicht mehr zu den Verwirrungen kommen kann...
Das Löschen aller Variablen geht mit

Code: Alles auswählen

rm(list = ls())
(Ich benutze auch eher den Feger-Button in RStudio aber man soll sich nicht von Anfang an zu abhängig von einer IDE machen. Wer weiß, vielleicht steigen wir alle in 5 oder in 10 Jahren auf VSCode oder auf Emacs oder auf NetBeans um...)

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

Re: Daten sind alle als Character statt Numeric

Beitrag von jogo »

bigben hat geschrieben: Mo Dez 07, 2020 10:08 am (Ich benutze auch eher den Feger-Button in RStudio aber man soll sich nicht von Anfang an zu abhängig von einer IDE machen.
Zum Glück generiert RStudio immer schön brav den passenden Funktionsaufruf in der R-Console.
So ist man immer informiert, welche Funktion die Aufgabe erledigt.

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

Re: Daten sind alle als Character statt Numeric

Beitrag von bigben »

Wirklich :?: Dann ist das bestimmt konfigurierbar, denn der Fegebutton schreibt bei mir nichts in die Console und auch nichts in die History (Version 1.2.1335).

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