2015-04-29 8 views
5

meinen Datenrahmen hat eine Spalte A mit Strings in ZeichenformZeichen Daten konvertierten bei der Verwendung von write.csv

> df$A 
[1] "2-60", "2-61", "2-62", "2-63" etc 

ich den Tisch write.csv mit gespeichert, aber wenn ich es öffne mit Excel Spalte A erscheint formatiert als Datum:

Feb-60 
Feb-61 
Feb-62 
Feb-63 
etc 

Wer weiß, was kann ich tun, um dies zu vermeiden?

Ich habe die Argumente von write.csv optimiert, aber nichts hat funktioniert, und ich finde kein Beispiel in Stack Overflow, das hilft, dieses Problem zu lösen.

+1

Bitte zeigen Sie den Code, den Sie verwendet haben, um die Datei zu schreiben –

+3

Es klingt wie Excel macht die Konvertierung, nicht R. – nrussell

+0

'write.csv (df, file =" analyse.csv ", quote = TRUE)' Ich vermute, es ist Excel ist schuld, aber ich hatte gehofft, etwas in R zu tun, damit Excel das nicht tut. – carlite71

Antwort

1

Eine andere Lösung - ein bisschen langweilig, Verwenden Sie Textdatei in Excel importieren, klicken Sie durch die Dialogfelder und in Schritt 3 von 3 des Textimport-Assistenten haben Sie eine Option zum Festlegen der Spalte Datenformat, verwenden Sie "Text "für die Spalte mit" 2-60 "," 2-61 "," 2-62 "," 2-63 ". Wenn Sie Allgemein (Standardeinstellung) verwenden, versucht Excel, intelligent zu sein und die Antwort für Sie zu konvertieren.

+0

Danke, das ist die Lösung, die am besten für mich funktioniert, da ich eine Ausgabe in Excel brauchte. – carlite71

7

Wie in den Kommentaren gesagt, ist dies ein Excel-Verhalten, nicht R's. Und das kann nicht deaktiviert werden:

Microsoft Excel ist vorprogrammiert, um die Eingabe von Daten zu erleichtern. Für Beispiel 12/2 ändert sich zu 2-Dec. Das ist sehr frustrierend, wenn Sie etwas eingeben, das Sie nicht zu einem Datum ändern möchten. Leider gibt es keine Möglichkeit, dies auszuschalten. Aber es gibt Möglichkeiten, um es zu umgehen.

Microsoft Office Article

Die erste vorgeschlagene Weg, um es nach dem Artikel ist nicht hilfreich, weil sie auf die Änderung der Zellenformatierung beruht, aber das ist zu spät, wenn Sie die CSV-Datei in Excel öffnen (es ist bereits konvertiert in eine Ganzzahl, die das Datum darstellt).

Es ist jedoch ein nützlicher Tipp:

  • Apostroph:

    Wenn Sie nur ein paar Zahlen eingeben müssen, können Sie Excel aus sie in Daten zu ändern durch Eingabe stoppen ('), bevor Sie eine Nummer eingeben, z. B. '11 -53 oder' 1/47. Der Apostroph wird nicht in der Zelle angezeigt, nachdem Sie Enter gedrückt haben.

So können Sie die Datenanzeige als Original machen von

vec <- c("2-60", "2-61", "2-62", "2-63") 
vec <- paste0("'", vec) 

nur unter Verwendung der Werte erinnern noch das Apostroph haben, wenn man sie wieder in R lesen, so dass Sie

verwenden können müssen
vec <- sub("'", "", vec) 

Dies ist vielleicht nicht ideal, aber zumindest funktioniert es.

Eine Alternative ist das Einschließen des Texts in =" " als eine Excel-Formel, aber das hat das gleiche Endergebnis und verwendet mehr Zeichen.

+8

Wer war das Genie im Excel-Team, die dies eine nicht-optionale Design-Entscheidung gemacht hat, sollte an der Seite des Kopfes geschlagen werden. – thelatemail

+1

Was mich amüsiert ist, dass anstatt ein Kontrollkästchen erstellen, um es zu deaktivieren sie schreiben einen Artikel sagen, es kann sehr frustrierend sein und geben Sie einige Ideen, die nützlich sind * wenn Sie nur ein paar Zahlen eingeben *. – Molx

Verwandte Themen