Seite 1 von 2

Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 2:21 pm
von MarcticFox
Hallo!
Ich habe meine Daten als dataframe eingeladen aber hinter jedem Wert schleicht sich ein "c2" ein, mal mit . oder <> davor/dahinter, und ich habe keine Ahnung wieso. Kann mir da jemand helfen? Foto als Beispiel für mein Problem ist im Anhang.
Liebe Grüße,
MarcticFox

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 3:45 pm
von jogo
Hallo MarcticFox,

willkommen im Forum!
MarcticFox hat geschrieben: Mi Apr 18, 2018 2:21 pm Hallo!
Ich habe meine Daten als dataframe eingeladen aber hinter jedem Wert schleicht sich ein "c2" ein, mal mit . oder <> davor/dahinter, und ich habe keine Ahnung wieso.
Kannst Du bitte zeigen, wie (mit welchem Code) Du die Daten eingelesen hast?
Vielleicht kannst Du auch die Textdatei (oder die ersten Zeilen davon) liefern, aus der Du die Daten gelesen hast.
Meiner Meinung nach, sollte das Problem gleich beim Einlesen behandelt werden (evtl. sep= anders setzen).

Gruß, Jörg

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 6:15 pm
von MarcticFox
Hallo Jörg!
Na klar!Code war folgender:

dat1 <- read.table("Rohdaten/MA_EisfuchsData20180416_0851.txt",skip = 1, sep="§", header = T, encoding="UTF-8", stringsAsFactors = T)

Und die Rohdaten sehen wie folgt aus:

### Aufzeichnung mit Entwicklerversion: Neuer Erfassungsmodus ### Aufzeichnung vom 16.04.2018 08:51:38§Benutzer Maren§Beobachterposition(Prozent) 73,6/25,900000000000006§Beobachterposition(Skaliert) 28262,4/9945,6§Projektdatei /sdcard1/Eisfuchs.obs§Erfassungsmodus 0
Datum§Uhrzeit§AktorId§AktorText§AktionId§AktionText§WetterId§WetterText§Anzahl Besucher§Skalierte Position X§Skalierte Position Y§Prozentuale Position X§Prozentuale Position Y§Skalierter Weg seit letzter Markierung§Sonneneinstrahlung§Temperatur§Luftfeuchtigkeit§Anzahl Interaktionspartner§InteraktionspartnerListeId§InteraktionspartnerListeText§Sequenznummer des Timers
16.04.2018§08:59:24§1§Faehe§3§liegt_draußen_mit§1§Sonnig§1§9945,6§10441,47§25,9§53,3§0§0§22§0§0§§§0
16.04.2018§08:59:31§2§Ruede§4§ist aufmerksam§1§Sonnig§1§22579,2§7013,22§58,8§35,8§0§0§22§0§0§§§0
16.04.2018§09:03:17§2§Ruede§2§liegt_kl_Box_mit§1§Sonnig§1§22963,2§7718,46§59,8§39,4§803,01§0§22§0§0§§§0

Liebe Grüße!

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 6:18 pm
von bigben
Das ist in R-Studio reproduzierbar:

Code: Alles auswählen

dat1 <- read.table(skip = 1, sep="§", header = T, encoding="UTF-8", stringsAsFactors = T,
                   text ="### Aufzeichnung mit Entwicklerversion: Neuer Erfassungsmodus ### Aufzeichnung vom 16.04.2018 08:51:38§Benutzer Maren§Beobachterposition(Prozent) 73,6/25,900000000000006§Beobachterposition(Skaliert) 28262,4/9945,6§Projektdatei /sdcard1/Eisfuchs.obs§Erfassungsmodus 0
  Datum§Uhrzeit§AktorId§AktorText§AktionId§AktionText§WetterId§WetterText§Anzahl Besucher§Skalierte Position X§Skalierte Position Y§Prozentuale Position X§Prozentuale Position Y§Skalierter Weg seit letzter Markierung§Sonneneinstrahlung§Temperatur§Luftfeuchtigkeit§Anzahl Interaktionspartner§InteraktionspartnerListeId§InteraktionspartnerListeText§Sequenznummer des Timers
16.04.2018§08:59:24§1§Faehe§3§liegt_draußen_mit§1§Sonnig§1§9945,6§10441,47§25,9§53,3§0§0§22§0§0§§§0
16.04.2018§08:59:31§2§Ruede§4§ist aufmerksam§1§Sonnig§1§22579,2§7013,22§58,8§35,8§0§0§22§0§0§§§0
16.04.2018§09:03:17§2§Ruede§2§liegt_kl_Box_mit§1§Sonnig§1§22963,2§7718,46§59,8§39,4§803,01§0§22§0§0§§§0")

View(dat1)

Code: Alles auswählen

> str(dat1)
'data.frame':	3 obs. of  21 variables:
 $ Datum.c2.                                 : Factor w/ 1 level "16.04.2018\xc2": 1 1 1
 $ Uhrzeit.c2.                               : Factor w/ 3 levels "08:59:24\xc2",..: 1 2 3
 $ AktorId.c2.                               : Factor w/ 2 levels "1\xc2","2\xc2": 1 2 2
 $ AktorText.c2.                             : Factor w/ 2 levels "Faehe\xc2","Ruede\xc2": 1 2 2
 $ AktionId.c2.                              : Factor w/ 3 levels "2\xc2","3\xc2",..: 2 3 1
 $ AktionText.c2.                            : Factor w/ 3 levels "ist aufmerksam\xc2",..: 2 1 3
 $ WetterId.c2.                              : Factor w/ 1 level "1\xc2": 1 1 1
 $ WetterText.c2.                            : Factor w/ 1 level "Sonnig\xc2": 1 1 1
 $ Anzahl.Besucher.c2.                       : Factor w/ 1 level "1\xc2": 1 1 1
 $ Skalierte.Position.X.c2.                  : Factor w/ 3 levels "22579,2\xc2",..: 3 1 2
 $ Skalierte.Position.Y.c2.                  : Factor w/ 3 levels "10441,47\xc2",..: 1 2 3
 $ Prozentuale.Position.X.c2.                : Factor w/ 3 levels "25,9\xc2","58,8\xc2",..: 1 2 3
 $ Prozentuale.Position.Y.c2.                : Factor w/ 3 levels "35,8\xc2","39,4\xc2",..: 3 1 2
 $ Skalierter.Weg.seit.letzter.Markierung.c2.: Factor w/ 2 levels "0\xc2","803,01\xc2": 1 1 2
 $ Sonneneinstrahlung.c2.                    : Factor w/ 1 level "0\xc2": 1 1 1
 $ Temperatur.c2.                            : Factor w/ 1 level "22\xc2": 1 1 1
 $ Luftfeuchtigkeit.c2.                      : Factor w/ 1 level "0\xc2": 1 1 1
 $ Anzahl.Interaktionspartner.c2.            : Factor w/ 1 level "0\xc2": 1 1 1
 $ InteraktionspartnerListeId.c2.            : Factor w/ 1 level "\xc2": 1 1 1
 $ InteraktionspartnerListeText.c2.          : Factor w/ 1 level "\xc2": 1 1 1
 $ Sequenznummer.des.Timers                  : int  0 0 0
Hat bestimmt irgendwas mit dem Encoding zu tun.

LG,
Bernhard

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 9:03 pm
von jogo
Ich bin jetzt soweit gekommen:

Code: Alles auswählen

text ="### Aufzeichnung mit Entwicklerversion: Neuer Erfassungsmodus ### Aufzeichnung vom 16.04.2018 08:51:38§Benutzer Maren§Beobachterposition(Prozent) 73,6/25,900000000000006§Beobachterposition(Skaliert) 28262,4/9945,6§Projektdatei /sdcard1/Eisfuchs.obs§Erfassungsmodus 0
                   Datum§Uhrzeit§AktorId§AktorText§AktionId§AktionText§WetterId§WetterText§Anzahl Besucher§Skalierte Position X§Skalierte Position Y§Prozentuale Position X§Prozentuale Position Y§Skalierter Weg seit letzter Markierung§Sonneneinstrahlung§Temperatur§Luftfeuchtigkeit§Anzahl Interaktionspartner§InteraktionspartnerListeId§InteraktionspartnerListeText§Sequenznummer des Timers
                   16.04.2018§08:59:24§1§Faehe§3§liegt_draußen_mit§1§Sonnig§1§9945,6§10441,47§25,9§53,3§0§0§22§0§0§§§0
                   16.04.2018§08:59:31§2§Ruede§4§ist aufmerksam§1§Sonnig§1§22579,2§7013,22§58,8§35,8§0§0§22§0§0§§§0
                   16.04.2018§09:03:17§2§Ruede§2§liegt_kl_Box_mit§1§Sonnig§1§22963,2§7718,46§59,8§39,4§803,01§0§22§0§0§§§0"
##
d <- read.table(skip=1, header=FALSE, stringsAsFactors = FALSE, sep="§", text=text)
d2 <- as.data.frame(lapply(d, sub, pattern="..$", replace=""), stringsAsFactors = FALSE)
d3 <- read.table(text=t(apply(d2, 1, paste0, collapse=";")), 
        header=TRUE, sep=";", dec=",", stringsAsFactors = FALSE, strip.white = TRUE)
str(d3)
Das ist leicht brutal, weil ich einfach zwei Zeichen am Ende jedes Feldes lösche.
Das Ergebnis sieht einigermaßen aus.
Darf ich fragen, welches Programm einen solchen Output erzeugt?

Nachtrag:
Ich habe festgestellt, dass die komischen Zeichen auch verloren gehen können, wenn man den Text zwischen verschiedenen Programmen hin- und herkopiert. Deshalb wäre es für die Reproduzierbarkeit des Effektes wichtig, die entsprechende Datei als Anhang oder einen Link zu einem Download zu haben.

Gruß, Jörg

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 9:50 pm
von EDi
Hat bestimmt irgendwas mit dem Encoding zu tun.
Mal latin-1 ausprobiert? Meine Windowszeit ist lange rum, aber ich meine mich zu erinnern...

Oder mal die Datei in einem gescheiten Editor öffnen und nachschauen / probieren.

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 10:30 pm
von MarcticFox
Guten Abend ihr beiden!
latin-1 sagt mir nichts, ich bin auch eher Anfängerin ;)
Das ist eineselbstgeschriebene App aus einer AG der Uni, die mir sowas ausspuckt. Sonst konfrontiere ich die Schöpfer der App mal mit dem Problem, das ist ein recht kleiner Kreis. Bloß arbeiten die bei der Auswertung leider nicht mit R, sondern nur mit Excel...da scheint es keine Probleme zu geben mit unerwünschten Zeichen.

Was wäre denn ein gescheiter Editor, Deiner Meinung nach?

Re: Ungewollte Zeichen in Daten

Verfasst: Mi Apr 18, 2018 10:44 pm
von bigben
Hi,

wenn Excel kein Problem ist, dann lade die Dateien doch einmal mit Excel und speichere sie dort als *.csv wieder ab. Dann lädst Du das mit Excel als csv gespeicherte mit der Funktion read.csv2 wieder ein. Ist das elegant? Nein. Könnte das klappen? Versuch macht klug.
Sonst konfrontiere ich die Schöpfer der App mal mit dem Problem, das ist ein recht kleiner Kreis. Bloß arbeiten die bei der Auswertung leider nicht mit R, sondern nur mit Excel...da scheint es keine Probleme zu geben mit unerwünschten Zeichen
Das sieht ja auch ganz klar nach etwas aus, was man in R machen können sollte. :shock:

LG,
Bernhard

Re: Ungewollte Zeichen in Daten

Verfasst: Do Apr 19, 2018 2:58 pm
von jogo
Hallo Polarfüchsin,

kannst Du bitte mal folgendes testen:

Code: Alles auswählen

Text <- readLines("Rohdaten/MA_EisfuchsData20180416_0851.txt")
dat1 <- read.table(text=gsub("..§", "§", Text), skip = 1, sep="§", dec=",", header=TRUE, stringsAsFactors=FALSE)
str(dat1)
und über das Ergebnis berichten?

Gruß, Jörg

Re: Ungewollte Zeichen in Daten

Verfasst: Do Apr 19, 2018 9:25 pm
von MarcticFox
Guten Abend! Hab ich getestet:

> rm(list=ls())
> setwd('C:/Users/(...))
> Text <- readLines("Rohdaten/MA_EisfuchsData20180416_0851.txt")
> dat1 <- read.table(text=gsub("..§", "§", Text), skip = 1, sep="§", dec=",", header=T, stringsAsFactors=F)
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
line 1 did not have 21 elements

...obwohl er doch Zeile 1 überspringen soll?