2016-12-05 1 views
-1

Ich habe ein Problem mit dem Exportieren der Daten, die ich möchte. CSV-Datei. es ist immer nur so in dieser exportierten Datei, die anderen exportierten Dateien sind in Ordnung. Kannst du mir helfen?Warum werden die Zahlen meiner exportierten Datei (.CSV) falsch dargestellt?

Ich dachte, dass das Problem von meiner PC-Sprache ist, da ich einen deutschen PC benutze, aber R ist in Deutsch und R Studio ist Englisch. Ich habe versucht, beide in die gleiche Sprache zu ändern und es hat nicht geklappt!

Ist es möglich, dass das Problem von der Sprache ist?

So sieht die Ausgabe aus, wenn Sie im mittleren Teil bemerken, sind die Zahlen auf eine seltsame Weise dargestellt.

die Ergebnisse, wenn .csv exportiert:

The results when exported to .CSV

Dieses Bild zeigt die gleiche Matrix aber in R-Studio:

The results inside R studio

+0

Liegt es daran, dass deutsche Excel '' '' '' 'verwendet? Versuchen Sie, beim Schreiben der Tabelle ein Argument zu verwenden, z. B. 'dec =". "' – Jacob

Antwort

2

Vertrauen Sie nicht Excel, da es die CSV-Datei konvertiert, wenn geöffnet, abhängig von Ihrer Windows-Sprache Einstellung. Werfen Sie einen Blick auf die CSV mit einem Texteditor und wenn die CSV ist in Ordnung (was ich denke) einfach ändern Sie Ihre Windows-Systemsprache auf "Englisch (USA)", schließen alle Excel-Instanzen und öffnen Sie dann die CSV. Ich bin auch auf einem deutschen PC und habe immer das gleiche Problem.

+0

danke, Mann. Du hast Recht Mann, ich habe es auf Texteditor überprüft und es hat funktioniert! – Manaf

0

Ich bin kein R Benutzer, aber es scheint ein lokales Problem zu sein. Versuchen Sie zu verwenden Sys.setlocale("LC_ALL","English")

0

Das Problem sind die Tausender Trennzeichen in Excel.

  1. So wäre der einfachste Weg, es in Excel zu deaktivieren.
  2. Innerhalb von R können Sie die Daten als Zeichen importieren (stringsAsFactors = F) und manuell jede . durch "" und dann jede , durch . ersetzen. Erwähnen Sie . als ein Muster als eine besondere Bedeutung (?regex). Deshalb müssen wir es als einen normalen Punkt mit \\. markieren, wenn wir nach einem einfachen Punkt suchen.

gespeichert ich eine Datei mit . als Tausendertrennzeichen und , als Dezimalzeichen als Test.csv.

csv <- read.csv2("Test.csv", header = F, stringsAsFactors = F) 
#    V1 
#1 15.123.515,00 ## <- these are characters/strings, not numbers 
#2 15.241.241,00 
#3 1.251.636,00 
#4 46.345.325,00 
#5 343.434.536,00 
apply(csv, 2, function(x) as.numeric(gsub(",",".",gsub("\\.", "", x)))) 
#    V1 
# [1,] 15123515 ## <- these are numeric/numbers now 
# [2,] 15241241 
# [3,] 1251636 
# [4,] 46345325 
# [5,] 343434536 

Mit dem apply und Parameter 2 I gelten die ersetzende (gsub) auf jeder Spalte. Wenn Sie nur ein paar Spalten haben, können Sie diese einzeln ändern, ohne apply zu verwenden.

+0

vielen Dank für die hilfreiche Antwort, aber das ist ich denke für den Import. Mein Problem ist mit dem Export. tausend Dank – Manaf

Verwandte Themen