Seite 1 von 2

Probleme beim Einlesen einer CSV-Datei

Verfasst: Mi Mai 20, 2020 11:25 am
von brapo
Hallo alle miteinander,

ich habe bereits oft CSV-Daten sowohl in SPSS als auch in R eingelesen. Die jetzige bereitet mir allerdings Schwierigkeiten

Ich benutze den Befehl

Code: Alles auswählen

daten=read.csv2("datensatz2.csv", header =TRUE, sep=",")
, allerdings sieht die eingelesene Datei nicht so aus wie gewünscht :O
Die CSV-Daten sind sowieso meiner Meinung nach etwas komisch in LimeSurvey abgespeichert worden. Ein Ausschnitt davon ist hier zu sehen:

Bild.

Mich verwirren hier irgendwie die Anführungszeichen " ". Ich weiß nicht so recht, wie diese zu behandeln sind. Wenn ich den oben genannten Befehl ausführe, bekomme ich folgenden Output:

Bild

Kann mir bitte jemand von euch sagen, was ich falsch mache?

Gruß!

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mi Mai 20, 2020 12:02 pm
von bigben
Ich kann keine Bilder sehen, wüsste aber auch nicht, was mit Bildern besser darzustellen wäre als mit Code Tags und copypaste.

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mi Mai 20, 2020 12:46 pm
von ruedi_br
In diesem Fall hätte es einen Sinn, statt der Rgui Rstudio zubenutzen, da kann man beim Import (Dataset) noch etwas herumprobieren.
VG
Ruedi

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mi Mai 20, 2020 12:57 pm
von bigben
Ok, die Bildansicht funktioniert nicht, weil das keine Links auf Bilder sind sondern auf Filehoster-Seiten, in denen Bilder vorkommen. Händisch kann man sich das anschauen: https://imgur.com/a/QA0IAw5

Im ersten Bild sieht man am ehensten einen Excel-Fensterausschnitt und Excel hat die Daten mit dem falschen Trennzeichen eingelesen. Frage: Bezieht sich der Rest der Frage noch auf die ursprüngliche CSV-Datei oder inzwischen auf eine nach falschem Einlesen von Excel (oder SPSS) gespeicherte?

Kannst Du die originale CSV einfach mit einem Texteditor aufmachen und die ersten paar Zeilen mit copy&paste in Code-Tags hier ins Forum posten?

LG,
Bernhard

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mo Mai 25, 2020 2:44 pm
von brapo
Hallo alle miteinander und vielen Dank für eure hilfreichen Tipps! :)

Ich beziehe mich jetzt mal auf Bernhards Vorschlag. Ich habe jetzt die Excel-Datei mit einem Texteditor geöffnet und kopiere die ersten paar Zeilen mal hier hinein:

Code: Alles auswählen

"Antwort ID,""Datum Abgeschickt"",""Letzte Seite"",""Start-Sprache"",""Zufallsgeneratorstartwert"",""Bitte geben Sie Ihr Alter an."",""Bitte geben Sie Ihr Geschlecht an."",""Bitte geben Sie Ihr Geschlecht an. [Sonstiges]"",""Bitte geben Sie Ihre Staatsbürgerschaft an."",""Bitte geben Sie Ihre Staatsbürgerschaft an. [Sonstiges]"",""Bitte geben Sie Ihre höchst abgeschlossene Ausbildung an."",""Bitte geben Sie Ihre höchst abgeschlossene Ausbildung an. [Sonstiges]"",""Beantworten Sie diese Frage bitte in Bezug auf die Wohnsituation in Ihrer Kindheit. Wählen Sie die Antwort aus, welche am ehesten auf Sie zutrifft.  Bitte geben Sie an, wie Sie aufgewachsen sind:  "",""Beantworten Sie diese Frage bitte in Bezug auf die Wohnsituation in Ihrer Kindheit. Wählen Sie die Antwort aus, welche am ehesten auf Sie zutrifft.  Bitte geben Sie an, wie Sie aufgewachsen sind:   [Sonstiges]"",""Beantworten Sie diese Frage bitte in Bezug auf Ihre aktuelle Wohnsituation. Wählen Sie die Antwort aus, welche am ehesten auf Sie zutrifft.  Bitte geben Sie an, wie Ihre aktuelle Wohnsituation ist: "",""Hören Sie immer aufmerksam zu, wenn Sie sich mit Ihnen nahestehenden Personen unterhalten?"",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal auf ihren eigenen Partner eifersüchtig gewesen?  Beantworten Sie die Frage bitte in Bezug auf: Eltern oder andere wichtige Bezugspersonen "",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal auf ihren eigenen Partner eifersüchtig gewesen?  Beantworten Sie die Frage bitte in Bezug auf:     [Freunde, die Sie schon seit Ihrer Kindheit kennen]"",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal auf ihren eigenen Partner eifersüchtig gewesen?  Beantworten Sie die Frage bitte in Bezug auf:     [Freunde, mit denen Sie sich häufig treffen]"",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal auf ihren eigenen Partner eifersüchtig gewesen?  Beantworten Sie die Frage bitte in Bezug auf:     [Ihre besten Freunde/innen ]"",""Ist es schon einmal vorgekommen, dass Sie eine Ihnen nahestehende Person ausgenutzt haben?"",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal gegenüber ihrem eigenen Partner gewalttätig geworden?   Beantworten Sie die Frage bitte in Bezug auf: Eltern oder andere wichtige Bezugspersonen  "",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal gegenüber ihrem eigenen Partner gewalttätig geworden?   Beantworten Sie die Frage bitte in Bezug auf:      [Freunde, die Sie schon seit Ihrer Kindheit kennen]"",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal gegenüber ihrem eigenen Partner gewalttätig geworden?   Beantworten Sie die Frage bitte in Bezug auf:      [Freunde, mit denen Sie sich häufig treffen]"",""Wie viele Ihrer nahestehenden Personen sind zumindest einmal gegenüber ihrem eigenen Partner gewalttätig geworden?   Beantworten Sie die Frage bitte in Bezug auf:      [Ihre besten Freunde/innen ]"",""Behandeln Sie Ihnen nahestehende Personen immer freundlich und zuvorkommend auch wenn Sie selbst gestresst sind?"","" Helfen Sie Ihnen nahestehenden Personen manchmal nur, wenn Sie selbst eine Gegenleistung erwarten können?"",""Haben Sie in Ihrem sozialen Umfeld bei Ihnen nahestehenden Personen, zumindest einmal beobachtet, wie sie eifersüchtig gegenüber ihrem eigenen Partner reagiert haben?   Beantworten Sie die Frage bitte in Bezug auf:   [Eltern / andere wichtige Bezugspersonen]"",""Haben Sie in Ihrem sozialen Umfeld bei Ihnen nahestehenden Personen, zumindest einmal beobachtet, wie sie eifersüchtig gegenüber ihrem eigenen Partner reagiert haben?   Beantworten Sie die Frage bitte in Bezug auf:   [andere Erwachsene / Bekannte]"",""Haben Sie in Ihrem sozialen Umfeld bei Ihnen nahestehenden Personen, zumindest einmal beobachtet, wie sie eifersüchtig gegenüber ihrem eigenen Partner reagiert haben?   Beantworten Sie die Frage bitte in Bezug auf:   [Verwandte]"",""Haben Sie in Ihrem sozialen Umfeld bei Ihnen nahestehenden Personen, zumindest einmal beobachtet, wie sie eifersüchtig gegenüber ihrem eigenen Partner reagiert haben?   Beantworten Sie die Frage bitte in Bezug auf:   [Freundeskreis]"",""Wie schätzen Sie die Folgen von Eifersucht gegen den Partner ein?"",""Wie schätzen Sie die Folgen des Einsatzes von Gewalt gegen den Partner ein?"",""Bleiben Sie im Streit mit Ihnen nahestehenden Personen stets sachlich und objektiv?"",""Wie stehen Sie zu Eifersucht gegenüber dem Partner? "",""Wie stehen Sie zu dem Einsatz von Gewalt gegen den Partner?"",""Wie lautet die Bundeshauptstadt von Österreich? Aufgrund der unbrauchbaren Datenqualität, welche bei schnellem Durchklicken der Studie entstehen kann, bitte ich Sie die folgende Frage mit Köln zu beantworten, um sicherzugehen, dass die Aufgabenstellungen sorgfältig und genau gelesen wurde.  "",""Freddy ist mit seiner Freundin Julia im Strandbad. Er holt beiden etwas zu trinken. Als er zurückkommt, sieht er wie Julia mit zwei anderen Männern redet. Sie scheinen Spaß zu haben.  Was könnte Freddy denken? "",""Wie könnte Freddy reagieren? "",""Sophia ist seit vier Monaten mit Michael zusammen. Sie findet, dass sie eine gute Beziehung führen. Michael erzählt Sophia, dass er kurzfristig beschlossen hat, mit seinen Freunden nach Berlin zu fahren, um dort am Wochenende den Geburtstag seines besten Feundes zu feiern.   Was könnte Sophia denken? "",""Wie könnte Sophia reagieren? "",""Lena ist erst seit sechs Wochen mit ihrem Traummann Florian zusammen. Er postet sehr viele Bilder von seinen sportlichen Aktivitäten in sozialen Netzwerken - er ist Fitness-Influencer. Seit ein paar Tagen bemerkt Lena, dass eine bestimmte Frau alle seine Bilder liket und mit Herz- und Bussi-Emojis kommentiert.  Was könnte Lena denken? "",""Wie könnte Lena reagieren? "",""Daniel wohnt seit zwei Jahren mit seiner Partnerin Marie zusammen. Marie hat einen erfolgreichen Job, der ihr viel Freude bereitet aber ihr leider nur wenig Freizeit lässt. Neuerdings kommt sie abends immer später nachhause und redet ständig nur über ihre Arbeit.  Was könnte Daniel denken? "",""Wie könnte Daniel reagieren? """

Vielen herzlichen Dank für eure Bemühungen :)

Gruß

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mo Mai 25, 2020 2:55 pm
von bigben
Hallo brapo,

das äußerste Paar Anführungszeichen ist merkwürdig. Ich hoffe, das hast Du hier zum Zitieren hinzugefügt. Versuch doch bitte mal

Code: Alles auswählen

befragung1 <- read.csv("datensatz2.csv", header = TRUE)
str(befragung1)
head(befragung1)
und poste die genaue Ausgabe von R in code-Tags. Dabei sollte datensatz2.csv möglichst die Datei von limesurvey und nicht eine vorher in Excel gespeicherte Datei sein.
Leider kommen in den Fragetexten, die zugleich die Überschriften sind, Kommas vor. Deshalb können wir die Funktion der Anführungszeichen nicht einfach abschalten. Vermutlich müssen wir die in einem späteren Schritt löschen.

LG,
Bernhard

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mo Mai 25, 2020 3:20 pm
von brapo
Vielen herzlichen Dank für die rasche Rückmeldung! :)

Ich habe das jetzt wie von dir vorgeschlagen in R eingelesen.
Mit str(befagung1) wird mir mitgeteilt, dass es sich um einen dataframe mit einer Variable und 251 Beobachtungen handelt. Mit head erhalte ich ein sehr sehr merkwürdiges Ergebnis:

Code: Alles auswählen

head(befragung1)

Code: Alles auswählen

X.Antwort.ID...Datum.Abgeschickt...Letzte.Seite...Start.Sprache...Zufallsgeneratorstartwert...Bitte.geben.Sie.Ihr.Alter.an....Bitte.geben.Sie.Ihr.Geschlecht.an....Bitte.geben.Sie.Ihr.Geschlecht.an...Sonstiges....Bitte.geben.Sie.Ihre.Staatsbürgerschaf ...

Code: Alles auswählen

1 5,"1980-01-01 00:00:00","7","de","1498893192","22","weiblich","","Österreich","","Matura","","bei zwei Elternteilen (biologisch oder nicht)","","in einer ländlichen Gegend (z.B.: Gemeinde am Land)","trifft voll und ganz zu","keiner von beiden","weniger als die Hälfte","keiner von ihnen","keiner von ihnen",

Code: Alles auswählen

"trifft gar nicht zu","keiner von beiden","keiner von ihnen","keiner von ihnen","keiner von ihnen","trifft voll und ganz zu","trifft gar nicht zu","Nein","Nein","Nein","Nein","ausgewogen zwischen negativ und positiv","hauptsächlich negativ","trifft ziemlich zu","empfinde ich als in Ordnung.","ist für mich unverzeihlich.",

Code: Alles auswählen

"Köln","Freddy denkt, dass die Männer Arbeitskollegen von Julia sind.","Freddy setzt sich zu den drei Anwesenden und nimmt am Gespräch teil.","Sophia denkt, dass sie sich am Wochenende mit ihren Freundinnen treffen kann.","Sophia wünscht Michael viel Spaß.","Lena denkt, dass andere Frauen Florian auch attraktiv finden und freut sich darüber.","Lena fragt Florian wer diese Frau ist."

Code: Alles auswählen

,"Daniel denkt, dass Marie eine gute Mitarbeiterin ist und deshalb länger arbeiten muss.","Daniel bietet Marie seine Unterstützung an."
So etwas Komisches habe ich noch nicht gesehen :O

Gruß

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mo Mai 25, 2020 3:52 pm
von bigben
Ja, das äußere Paar Anführungszeichen führt dazu, dass alles dazwischen der Inhalt einer einzigen Spalte ist. Mögliche Vorgeschichte: Eine csv wurde von Excel mit falschem Trennzeichen eingelesen: Weil das Semikolon als Trennzeichen gar nicht vorkam, hat Excel alles für eine Spalte gehalten. Dann wurde mit Excel wieder abgespeichert, und Excel hat mit den äußeren Anführungszeichen dafür gesorgt, dass alles eine Spalte bleibt. Leider schreibst Du mir aber nichts dazu, ob das die original LimeSurvey-Datei oder eine ein Excel eingelesene und danach erneut gespeicherte Datei ist.

Ich frage aber gerne nochmal: Ist diese Datei so original von LimeSurvey, dann müssen wir versuchen, die Anführungszeichen zu löschen. Oder gibt es irgendwo noch eine originalere Datei von LImeSurvey, die zwischendurch kein Excel gesehen hat, dann sollte man mit der weiter arbeiten.

LG,
Bernhard

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Mo Mai 25, 2020 4:06 pm
von bigben
Ungefähr so könnte es aussehen. Ich habe jetzt mal eine Datei erstellt, die Deiner Antwort von oben entspricht:

Code: Alles auswählen

""ID", "Name", "PLZ""
"1, "Gitti", "12435""
"2, "Frank", "23547""
"3, "Steffi", "34576""
Das ist bei mir abgespeichert als R\Schrott\daten.csv
Das folgende Code-Stück liest diese Datei Zeile für Zeile ein, entfernt dann immer vorne und hinten ein Zeichen (Anführungszeichen) und liest das Ergebnis dann als Dataframe ein:

Code: Alles auswählen

handle <- file("C:\\Users\\eins\\Documents\\R\\Schrott\\daten.csv", "r", blocking = FALSE)
zeilen <- readLines(handle)
close(handle)
head(zeilen)

for(i in 1:length(zeilen)){
  zl <- nchar(zeilen[i])
  zeilen[i] <- substr(zeilen[i], 2, zl-1)
}

read.csv(text=zeilen)
HTH,
Bernhard

Re: Probleme beim Einlesen einer CSV-Datei

Verfasst: Di Mai 26, 2020 9:41 am
von brapo
Oh wow! Sehr cool, danke dir vielmals Bernhard für deine Bemühungen. :)

Sorry, dass ich so nervig bin, aber ich habe die Datei jetzt nochmal leicht verändert als Excel-Arbeitsmappe abgespeichert. Das Einlesen scheint zumindest auf den ersten Blick auch funktioniert zu haben, allerdings stimmen bei genauerer Betrachtung die Werte nicht überein. Einen Ausschnitt aus dem Excel-Datensatz habe ich als Anhang eingefügt
Ausschnitt aus Excel-Datensatz
Ausschnitt aus Excel-Datensatz
.

Ich habe es anschließend in R wie folgt eingelesen:

Code: Alles auswählen

daten=read.csv2("daten3.csv", header =TRUE, sep=";")
Mit

Code: Alles auswählen

str(daten)
bekomme ich heraus, dass es sich um einen Dataframe mit 251 Beobachtungen und 45 Variablen handelt.

Wie gesagt, auf den ersten Blick scheint das alles auch recht erfolgreich eingelesen worden zu sein. Wenn ich mir nun allerdings die Variable nach der Wohnsituation anschaue, sind die ersten 8 Antworten Faktoren mit
"bei zwei Elternteilen (biologisch oder nicht)"
"bei zwei Elternteilen (biologisch oder nicht)"
bei zwei Elternteilen (biologisch oder nicht)
bei zwei Elternteilen (biologisch oder nicht)
bei zwei Elternteilen (biologisch oder nicht)
bei zwei Elternteilen (biologisch oder nicht)
bei zwei Elternteilen (biologisch oder nicht)
bei zwei Elternteilen (biologisch oder nicht)

Bei meinem eingelesenen R-Datensatz sind die ersten beiden Werte "bei zwei Elternteilen (biologisch oder nicht)" und die dritte Beobachtung "bei einem Elternteil (Großmutter etc.)". Das sieht dann so aus:
R-Dataframe
R-Dataframe
Die Daten stimmen also nicht überein. Woran könnte das liegen?

Meint ihr, darf ich die Excel-Datei hier hinein posten, damit es leichter ist, den Fehler nachzuvollziehen?

Ganz ganz herzlichen Dank! Ich bin gerade echt schon am Verzweifeln :(

Gruß,
Brapo