Transformation von Daten (factor zu numeric) - weiterführende Probleme

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

Moderatoren: EDi, jogo

Antworten
Lea

Transformation von Daten (factor zu numeric) - weiterführende Probleme

Beitrag von Lea »

Hallo,
ich habe ein Dataset mit 2 response variablen (Gewicht und Kopfkapselbreite). Ich habe beim Einlesen der Daten, dass R meine Kopfkapsel (head) als factor interpretiert und meine Werte in ganzzahlige Nummern umwandelt, das Gewicht hingegen, wird normal als numerisch erkannt. Angaben der Dezemialstellen mit ',' in .txt, was ich mit dec="," jedoch beim Einlesen berücksichtigt hatte.

$ kopf : Factor w/ 46 levels "0,088","0,094",..: 19 14 17

Wie transformiere ich meine Daten nun korrekt?

# Folgendes hatte ich bereits durchgeführt und habe auch in englischen Foren gelesen, dass in R eine korrekte Transformation von factor zu numerischen Daten nicht ohne mögliche Probleme möglich ist.

Code: Alles auswählen

class(kopf)
is.numeric(kopf)
v$kopf = as.numeric(v$kopf)
as.numeric.factor <- function(kopf) {as.numeric(levels(v$kopf))[v$kopf]} 
head(v$head)
#Ob nun mit den transformierten oder beim neuen Einladen OHNE den Befehl 'as.numeric.factor', kommt folgendes output:

Code: Alles auswählen

[b]output:[/b] 
[b]> class(kopf)[/b]
[1] "numeric"
[b]> str(kopf)[/b]
 num [1:144] 19 14 17 17 30 8 8 22 25 25 ...
#Für ein lineares Modell erhalte ich meines Erachtens in Folge der fehlerhaften Transformation folgende Warnung und das Modell wird nicht durchgeführt:

Code: Alles auswählen

Warning messages:
1: In model.response(mf, "numeric") :
  Benutzung von type="numeric" wird für eine faktorielle Zielgröße ignoriert
2: In Ops.factor(y, z$residuals) : ‘-’ not meaningful for factors
Kann mir jemand helfen? Vielen Dank vorab.
Lea
Zuletzt geändert von jogo am Di Mär 14, 2017 9:24 am, insgesamt 1-mal geändert.
Grund: Formatierung der Codestücke
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Transformation von Daten (factor zu numeric) - weiterführende Probleme

Beitrag von jogo »

Hallo Lea,

willkommen im Forum.
Hier die entsprechende Antwort aus dem FAQ
https://cran.r-project.org/doc/FAQ/R-FAQ.html Punkt 7.10
https://cran.r-project.org/doc/FAQ/R-FA ... meric_003f
Also immer schön:

Code: Alles auswählen

as.numeric(as.character(...))
Allerdings wird R schon seinen Grund haben, weshalb Deine erste Datenspalte nicht als numeric erkannt wird ...
Man kann sich aber die Verwirrung um die automatische Umwandlung zu Faktoren beim Einlesen ersparen, in dem man beim Einlesen den Parameter stringsAsFactors=FALSE setzt, alternativ wirkt as.is=TRUE ganz genauso.
Du wirst die Spalte Dir ansehen müssen (in der einzulesenden Textdatei oder im Dataframe nach dem Einlesen), um festzustellen, welcher Text sich nicht nach numeric konvertieren lässt.
Mehr kann ich jetzt ohne Ansicht der Daten nicht dazu schreiben.

Gruß, Jörg
Lea

Re: Transformation von Daten (factor zu numeric) - weiterführende Probleme

Beitrag von Lea »

Hallo Jörg,

vielen Dank für deine Tipps. Mit 'as.numeric(as.character(...))' hat es nun funktioniert, leider nur sind es nun ganze Zahlen, wie auch immer dies automatisch berechnet wurden in R, d.h. von Angaben zum Gewicht mit drei Nachkommastellen, beginnend mit jeweils '0,':

>kopf
[1] 0,116 0,111 0,114 0,114 0,128

zu:

>kopf
[1] 19 14 17 17 30

Ich habe folgendes bereits probiert, leider ohne Erfolg, es sind immernoch ganze Zahlen:
kopf<-as.numeric(levels(kopf))[kopf]

Gibt es hierfür eine Lösung?
Danke. Lea
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Transformation von Daten (factor zu numeric) - weiterführende Probleme

Beitrag von jogo »

Hallo Lea,

wie ich schon geschrieben habe, kann ich ohne Daten nicht weiter helfen. Bitte lies im Bereich FAQ viewforum.php?f=20 das Thema viewtopic.php?f=20&t=11

Gruß, Jörg
Lea

Re: Transformation von Daten (factor zu numeric) - weiterführende Probleme

Beitrag von Lea »

Hallo Jörg,

ich hatte nun doch noch Hilfe von einem Kollegen bekommen. Es lag scheinbar an der .txt, die ich eingelesen hatte. Viele Grüße. Lea
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Transformation von Daten (factor zu numeric) - weiterführende Probleme

Beitrag von jogo »

Hallo Lea,

danke für die Rückmeldung - schön, dass es jetzt funktioniert.
Es ist genau das, was ich die ganze Zeit geschrieben habe:
man muss sich die einzulesende Datei und die Funktion zum Einlesen der Datei anschauen.

Gruß, Jörg
Antworten