Manche Daten (Spalten) werden nicht erkannt
Manche Daten (Spalten) werden nicht erkannt
Hallo:-) ich schreiben gerade an meiner Promotion (Medizin) und stecke total fest (leider bin ich Computer-Technisch generell nicht so sehr bewandet)
Zu meiner Studie:
Es geht darum, 2 Gruppen von Patienten zu untersuchen. Beide Gruppen erhalten verschiedene Messungen. Alle Ergebnisse habe ich in einer Excel Tabelle aufgeführt. In der ersten Zeile stehen die Bezeichnungen (jeweils eine Spalte Gruppe A und eine Spalte Gruppe B) und darunter folgen die Werte. Teilweise handelt es sich um ganze Zahlen, manchmal sind es aber auch Dezimalzahlen oder negative Werte. Anfangs hatte ich noch NA bei den Ergebnissen stehen, bei denen die Messung nicht durchgeführt werden konnte aber ich habe alle NAs entfernt und somit befinden sich außer den Überschriften in Zeile 1 nur Zahlen (in Excel als "Standard" formatiert).
Für meine Arbeit benötige ich die Verteilung der Werte innerhalb jeder Gruppe (Normalverteilung; 25 und 75% Perzentile; Min und Max; Standardabweichhung, Median.....) und dann die Korrelation von verschiedenen Messergebnissen sowie die Auswertung ob die Daten signifikant sind.
Meine Wertetabelle habe ich als csv abgespeichert.
Wenn ich R öffne, lade ich mit:Daten<-read.table(file.choose(),header=T,sep=";",dec=".") den Datensatz. Gucke ich mir diesen mit str(Daten) an, wird mir angezeigt, dass manche Werte als: "int" bezeichnet werden und andere als "factor".
Die Dezimalzahlen sind in der Tabelle mit einem Komma getrennt, habe auch schon den Befelh: as.numeric() oder dec"," eingegeben aber das hat auch nix gebracht. Möchte ich nämlich mit den Daten arbeiten, zum Beispiel einen einfachen Mittelwert berechnen, kommt immer: argument is not numeric or logical: returning NA
Vermutlich ist meine Frage lächerlich aber ich weiß mir nicht zu helfen:-(
Und wie kann ich den KS-Test zur Prüfung der Normalverteilung anwenden?
Wie berechne ich die 25% und 75% Perzentile sowie die Korrelation 2er Parameter?
Ich wäre echt unheimlich über eure Hilfe dankbar!!!!
Ich wünsche euch allen Frohe Ostern,
LG Kira
Zu meiner Studie:
Es geht darum, 2 Gruppen von Patienten zu untersuchen. Beide Gruppen erhalten verschiedene Messungen. Alle Ergebnisse habe ich in einer Excel Tabelle aufgeführt. In der ersten Zeile stehen die Bezeichnungen (jeweils eine Spalte Gruppe A und eine Spalte Gruppe B) und darunter folgen die Werte. Teilweise handelt es sich um ganze Zahlen, manchmal sind es aber auch Dezimalzahlen oder negative Werte. Anfangs hatte ich noch NA bei den Ergebnissen stehen, bei denen die Messung nicht durchgeführt werden konnte aber ich habe alle NAs entfernt und somit befinden sich außer den Überschriften in Zeile 1 nur Zahlen (in Excel als "Standard" formatiert).
Für meine Arbeit benötige ich die Verteilung der Werte innerhalb jeder Gruppe (Normalverteilung; 25 und 75% Perzentile; Min und Max; Standardabweichhung, Median.....) und dann die Korrelation von verschiedenen Messergebnissen sowie die Auswertung ob die Daten signifikant sind.
Meine Wertetabelle habe ich als csv abgespeichert.
Wenn ich R öffne, lade ich mit:Daten<-read.table(file.choose(),header=T,sep=";",dec=".") den Datensatz. Gucke ich mir diesen mit str(Daten) an, wird mir angezeigt, dass manche Werte als: "int" bezeichnet werden und andere als "factor".
Die Dezimalzahlen sind in der Tabelle mit einem Komma getrennt, habe auch schon den Befelh: as.numeric() oder dec"," eingegeben aber das hat auch nix gebracht. Möchte ich nämlich mit den Daten arbeiten, zum Beispiel einen einfachen Mittelwert berechnen, kommt immer: argument is not numeric or logical: returning NA
Vermutlich ist meine Frage lächerlich aber ich weiß mir nicht zu helfen:-(
Und wie kann ich den KS-Test zur Prüfung der Normalverteilung anwenden?
Wie berechne ich die 25% und 75% Perzentile sowie die Korrelation 2er Parameter?
Ich wäre echt unheimlich über eure Hilfe dankbar!!!!
Ich wünsche euch allen Frohe Ostern,
LG Kira
Re: Manche Daten (Spalten) werden nicht erkannt
Hallo Kira,
willkommen im Forum!
Leider kann man auch nicht sofort die Umwandlungdurchführen, weil vorher die Kommas in Dezimalpunkte umgewandelt werden müssen.
Dann kann man vorher aber auch gleich miteinlesen.
und dann mit Daten$Spalte <- sub(",", ".", Daten$Spalte) das Komma umtauschen, Beispiel:
Bei den Stellen, wo anschließend die Umwandlung nach numerisch NAs erzeugt, muss man gucken, also:
notfalls muss man mit einem Editor in der CSV-Datei rumwerkeln.
Das machen wir dann nach dem Einlesen.
Schau schon mal nach summary() und
Gruß, Jörg
willkommen im Forum!
nein, lächerlich ist die Frage ganz und gar nicht. Das Einlesen der Daten ist immer eine kritische Stelle. Da Du schreibst, dass bei Dir die Dezimalen mit Komma abgetrennt sind, ist dec"," eigentlich schon richtig. Da das aber nicht geholfen hat, muss der Fehler an anderer Stelle liegen. Irgendwo in der CSV-Datei ist ein Zeichen versteckt, was immer noch nicht zu den numerischen Werten passt - das die Umwandlung verhindert.KiKu hat geschrieben: ↑Fr Apr 14, 2017 10:22 pmDie Dezimalzahlen sind in der Tabelle mit einem Komma getrennt, habe auch schon den Befehl: as.numeric() oder dec"," eingegeben aber das hat auch nix gebracht. Möchte ich nämlich mit den Daten arbeiten, zum Beispiel einen einfachen Mittelwert berechnen, kommt immer: argument is not numeric or logical: returning NA
Vermutlich ist meine Frage lächerlich aber ich weiß mir nicht zu helfen:-(
Leider kann man auch nicht sofort die Umwandlung
Code: Alles auswählen
as.numeric(as.character(...))
Dann kann man vorher aber auch gleich mit
Code: Alles auswählen
Daten<-read.table(file.choose(),header=T,sep=";",dec=",", stringsAsFactors=FALSE)
und dann mit Daten$Spalte <- sub(",", ".", Daten$Spalte) das Komma umtauschen, Beispiel:
Code: Alles auswählen
sub(",", ".", "3,1415")
Code: Alles auswählen
Daten<-read.table(file.choose(),header=T,sep=";",dec=",", stringsAsFactors=FALSE)
Daten$Spalte <- sub(",", ".", Daten$Spalte)
d <- data.frame(s=Daten$Spalte, n=as.numeric(Daten$Spalte))
d[is.na(d$n),] # siehst Du was? ...
Code: Alles auswählen
Und wie kann ich den KS-Test zur Prüfung der Normalverteilung anwenden?
Wie berechne ich die 25% und 75% Perzentile sowie die Korrelation 2er Parameter?
Schau schon mal nach summary() und
Code: Alles auswählen
fivenum()
Re: Manche Daten (Spalten) werden nicht erkannt
Oh wow tausend Dank für die ausführliche und schnelle Antwort!!!!
Also ich das eingegeben: Daten<-read.table(file.choose(),header=T,sep=";",dec=",", stringsAsFactors=FALSE)
und siehe da, meine Werte sind jetzt: "int" oder "num".
Gebe ich jetzt aber zum Beispiel: mean(x1) ein (habe die einzelnen Spalten Vektoren zugeordnet damit es übersichtlicher ist) kommt das dabei raus:
In mean.default(x1) : argument is not numeric or logical: returning NA
Also ich das eingegeben: Daten<-read.table(file.choose(),header=T,sep=";",dec=",", stringsAsFactors=FALSE)
und siehe da, meine Werte sind jetzt: "int" oder "num".
Gebe ich jetzt aber zum Beispiel: mean(x1) ein (habe die einzelnen Spalten Vektoren zugeordnet damit es übersichtlicher ist) kommt das dabei raus:
In mean.default(x1) : argument is not numeric or logical: returning NA
Re: Manche Daten (Spalten) werden nicht erkannt
Zeig doch bitte mal das Ergebnis von
Code: Alles auswählen
str(Daten)
Re: Manche Daten (Spalten) werden nicht erkannt
Ich hoffe man kann das erkennen...[attachment=0]Dok1.pdf
- Dateianhänge
-
- Dok1.pdf
- (244.09 KiB) 225-mal heruntergeladen
Re: Manche Daten (Spalten) werden nicht erkannt
Hm, ich kann das x1 dort gar nicht sehen. was ist denn x1 für ein Objekt? ... etwa ein Dataframe?
Ein Dataframe ist eine Liste - also kein numerischer Vektor - auch nicht wenn alle Spalten numerische Vektoren sind. Beispiel:
Gruß, Jörg
Ein Dataframe ist eine Liste - also kein numerischer Vektor - auch nicht wenn alle Spalten numerische Vektoren sind. Beispiel:
Code: Alles auswählen
BOD
str(BOD)
mean(BOD)
mean(BOD$demand)
Re: Manche Daten (Spalten) werden nicht erkannt
Ich möchte hier kurz die Auflösung des Rätsels verraten, weil es durchaus wichtig sein kann für andere, bei denen dieses Problem auftaucht. Das Problem waren Spaltennamen der Art:
Das ist jetzt schon das, was R daraus beim Einlesen gemacht hat.
Ursprünglich waren die Texte in der CSV-Datei entsprechend Codepage 437 abgelegt, also OCT_Cup_Area_(mm²)_FG
Dann wurde versucht, die Spalten des Dataframes umzuspeichern:
Da dieser Spaltenname im Dataframe nicht gefunden wird, ist das Ergebnis EMPTY, so wie bei:
Das Fatale daran ist, dass R keine Meldung ausgibt bei y2 <- BOD$unbekannteSpalte
Jede weitere Verarbeitung der Daten erzeugt entsprechende Fehlermeldungen, z.B.
Gruß, Jörg
Code: Alles auswählen
OCT_Cup_Area_.mmý._FG
Ursprünglich waren die Texte in der CSV-Datei entsprechend Codepage 437 abgelegt, also OCT_Cup_Area_(mm²)_FG
Dann wurde versucht, die Spalten des Dataframes umzuspeichern:
Code: Alles auswählen
y2<-Daten$OCT_Cup_Area_.mm²._FG
Code: Alles auswählen
y2 <- BOD$unbekannteSpalte
y2 # im Gegensatz zu
BOD$demand
Jede weitere Verarbeitung der Daten erzeugt entsprechende Fehlermeldungen, z.B.
Code: Alles auswählen
summary(y2)
#> summary(y2)
#Length Class Mode
# 0 NULL NULL
Re: Manche Daten (Spalten) werden nicht erkannt
Ja, nach dieser tollen Hilfe hat wirklich alles funktioniert! Toll, dass es dieses Forum und so nette Menschen gibt