merkwürdige Spaltennamenänderung

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

Moderatoren: EDi, jogo

Antworten
G-Rizzle
Beiträge: 13
Registriert: Do Nov 18, 2021 1:51 pm

merkwürdige Spaltennamenänderung

Beitrag von G-Rizzle »

Hi,

ich möchte eine .csv-Datei über R öffnen. Die Datei sieht folgend aus:
Data.PNG
Data.PNG (2.41 KiB) 1752 mal betrachtet

nun öffne ich sie über:

Code: Alles auswählen

data = read.csv("zeit_temperatur.csv")
print(data)
Spaltenname "zeit" wird nun merkwürdig abgeändert:
spaltenname.PNG
spaltenname.PNG (1.64 KiB) 1752 mal betrachtet
Woran liegt das?
Danke!
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: merkwürdige Spaltennamenänderung

Beitrag von student »

Du hast mit diesem Datensatz hast Du möglicherweise (ich kenne ja nicht die original Daten) 2 Herausforderungen:
a) "zeit, temperatur" mag read.csv oder read.csv2 nicht und wird entsprechend interpretiert. Du solltest das Komma gegen etwas anderes austauschen (ich denke, Du solltest die Datei als CSV (Trennzeichen getrennt) speichern. Wenn "," der Separator ist, hilft b) weiter.
b) Lese die Daten mit read.csv2 ein:

Code: Alles auswählen

Daten <-read.csv2("Test.csv")
> Daten
  zeit..temperatur
1             1.45
2             1.34
3             1.56
>
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
G-Rizzle
Beiträge: 13
Registriert: Do Nov 18, 2021 1:51 pm

Re: merkwürdige Spaltennamenänderung

Beitrag von G-Rizzle »

Hi,
danke für deine schnelle Antwort.

Warum mag read.csv dieses Format nicht? Ist dieses Format nicht der sinn von CommaSeparatedValues?


mit read.csv2 kommt leider der gleiche fehler :(
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: merkwürdige Spaltennamenänderung

Beitrag von student »

read.csv2 kommt mit dem Gebietsschema DE, auf das Excel zugreift, zurecht. Ist z. B. "1" die Zeit und "45" die Temperatur?

Code: Alles auswählen

> Daten
  zeit temperatur
1    1       1.45
2    2       1.34
3    3       1.56
Dateianhänge
Beispiel.jpg
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: merkwürdige Spaltennamenänderung

Beitrag von bigben »

Hallo G-Rizzle,

schön wieder von Dir zu lesen. Hatte jogo Recht, dass Deine Datumsangaben als Faktor eingelesen wurden und hast Du mit der Umwandlung die ich vorgemacht habe damit Deine Achsenbeschriftung korrigieren können?

Du zeigst und ein Foto, wie die Daten in Excel angezeigt werden. Das sagt aber nicht, wie die Daten aussehen nachdem Excel sie ins CSV-Format konvertiert hat. Oder kommt das CSV gar nicht aus Excel? Die besten Antworten kannst Du Dir erhoffen, wenn Du ein CSV-File hochlädst, mit dem der Effekt auftritt, nicht Screenshots von Daten. A propos: https://vm.tiktok.com/ZM88e2rv7/
st dieses Format nicht der sinn von CommaSeparatedValues?
Es gibt leider keine offizielle Spezifikation, wie eine CSV-Datei auszusehen hat und verschiedene Programme haben verschiedene Vorstellungen davon/setzen das unterschiedlich um. Hier dürfte sich irgendein sichtbares oder unsichtbares Sonderzeichen eingeschlichen haben von dem R unterstellt, dass es mit zur Spaltenüberschrift "zeilen" gehört und das vielleicht von "zeilen" mit einem Leerzeichen getrennt ist.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
G-Rizzle
Beiträge: 13
Registriert: Do Nov 18, 2021 1:51 pm

Re: merkwürdige Spaltennamenänderung

Beitrag von G-Rizzle »

bigben hat geschrieben: Do Dez 02, 2021 10:02 am Hallo G-Rizzle,

schön wieder von Dir zu lesen. Hatte jogo Recht, dass Deine Datumsangaben als Faktor eingelesen wurden und hast Du mit der Umwandlung die ich vorgemacht habe damit Deine Achsenbeschriftung korrigieren können?

Du zeigst und ein Foto, wie die Daten in Excel angezeigt werden. Das sagt aber nicht, wie die Daten aussehen nachdem Excel sie ins CSV-Format konvertiert hat. Oder kommt das CSV gar nicht aus Excel? Die besten Antworten kannst Du Dir erhoffen, wenn Du ein CSV-File hochlädst, mit dem der Effekt auftritt, nicht Screenshots von Daten. A propos: https://vm.tiktok.com/ZM88e2rv7/
st dieses Format nicht der sinn von CommaSeparatedValues?
Es gibt leider keine offizielle Spezifikation, wie eine CSV-Datei auszusehen hat und verschiedene Programme haben verschiedene Vorstellungen davon/setzen das unterschiedlich um. Hier dürfte sich irgendein sichtbares oder unsichtbares Sonderzeichen eingeschlichen haben von dem R unterstellt, dass es mit zur Spaltenüberschrift "zeilen" gehört und das vielleicht von "zeilen" mit einem Leerzeichen getrennt ist.

LG,
Bernhard

Hi! ist ja sehr familiär hier :D das mit der Faktoreinlesung habe ich noch nicht ganz raus, deine Umwandlung habe ich angewandt und funktioniert gut. Danke dafür.

Eine Beispieldatei, wo die Spaltennamenänderung auftritt habe ich hier:
test_temp.csv
(91 Bytes) 119-mal heruntergeladen
danke!
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: merkwürdige Spaltennamenänderung

Beitrag von jogo »

Code: Alles auswählen

read.csv("http://forum.r-statistik.de/download/file.php?id=1624")
funktioniert bei mir problemlos.

Code: Alles auswählen

> read.csv("http://forum.r-statistik.de/download/file.php?id=1624")
  Zeit Temperatur.1 Temperatur.2
1    1           46           46
2    2           47           46
3    3           47           47
4    3           51           45
5    4           53           44
6    5           55           47
Gruß, Jörg
p.s.:

Code: Alles auswählen

> sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.3 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C               LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8     LC_MONETARY=de_DE.UTF-8   
 [6] LC_MESSAGES=de_DE.UTF-8    LC_PAPER=de_DE.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.1.2 tools_4.1.2   
> 
G-Rizzle
Beiträge: 13
Registriert: Do Nov 18, 2021 1:51 pm

Re: merkwürdige Spaltennamenänderung

Beitrag von G-Rizzle »

Hi Jörg,

sehr merkwürdig. Ich arbeite in Jupyter Notebook. Mein Verdacht war eben, dass es daran liegen könnte. Habe es eben in RStudio versucht, leider selbiges Problem.

hmm....
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: merkwürdige Spaltennamenänderung

Beitrag von bigben »

Hallo,

ich habe noch ein älteres R auf einem USB-Stick und da passiert mit Jörgs Code das hier:

Code: Alles auswählen

> read.csv("http://forum.r-statistik.de/download/file.php?id=1624")
  ï..Zeit Temperatur.1 Temperatur.2
1       1           46           46
2       2           47           46
3       3           47           47
4       3           51           45
5       4           53           44
6       5           55           47
> sessionInfo()
R version 3.2.5 (2016-04-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252   
[3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.2.5
Sieht so aus, dass das der zweite von zwei Threads ist in denen Dein Problem durch eine veraltete R-Version begünstigt wird. An Deiner Stelle würde ich spätestens jetzt auf ein aktuelles R updaten. Gibt es diese Woche (nach Black Friday) kostenlos auf www.r-project.org.

Und jetzt zur Erklärung des Problems. Wenn man Deine test_tmp.csv mit einem Hexeditor einliest (beispielsweise online unter https://hexed.it/ )dann sieht man, dass Deine Datei mit der folgenden Bytefolge startet: EF BB BF und dann erst kommt "Zeit". Das ist eine sog Byte Order Mark die angibt, dass der folgende Text utf-8 kompatibel ist. Siehe hier: https://www.rgagnon.com/javadetails/jav ... h-bom.html
Augenscheinlich wurde dieses Maß an utf8-Verträglichkeit erst mit R Version 4 eingeführt und deshalb deutet Dein altes R die Byte Order Mark als Teil der Spaltenüberschrift.
Ein sehr schönes Beispiel auch dafür, warum ein Screenshot von Daten viel weniger Wert ist als eine Datei mit Daten.

LG,
Bernhard


Nachtrag:
The UTF-8 representation of the BOM is the (hexadecimal) byte sequence 0xEF,0xBB,0xBF.

The Unicode Standard permits the BOM in UTF-8, but does not require or recommend its use
[...]
Not using a BOM allows text to be backwards-compatible with some software that is not Unicode-aware.
[...]
Microsoft compilers[9] and interpreters, and many pieces of software on Microsoft Windows such as Notepad treat the BOM as a required magic number rather than use heuristics. These tools add a BOM when saving text as UTF-8,
aus: https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten