2016-10-19 3 views
3

Ich habe ein Zoo-Objekt, das einige NA-Werte enthält und ich schreibe es in eine Excel-Datei mit dem write.xlsx Befehl aus dem xlsx Paket. Anstatt NA in der Excel-Datei zu geben, wo erforderlich, stellt es #N/A zur Verfügung, mit dem Excel Probleme hat, mit zu arbeiten. Ist das normales Verhalten? Wenn ja, gibt es das überhaupt? Hierwrite.xlsx in R gibt falsche NA in Zelle

ist ein Beispiel

y <- zoo(c(1:40), as.Date(1:40)) 
y[20] <- NA 
write.xlsx(y, file = "test.xlsx") 

Vielen Dank

+0

# N/A ist, was Excel als NA-Werte verwendet. Wenn Sie "= ISNA (# N/A)" in eine Zelle eingeben, wird TRUE zurückgegeben. Gibt es weitere Details, die Sie zur Verfügung stellen können, um Ihren Fehler reproduzierbar zu machen? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-beispiel –

+0

Entschuldigung, dann scheint es, die Funktion funktionierte richtig und ich missverstanden Excel. Das Problem ist, dass, wenn es einmal in Excel ist, wenn ich versuche, den Durchschnitt einer Zeile zu bekommen, die # N/A Fehler verursacht. Zuvor hatte ich eine CSV-Datei, die NA anstelle von # N/A enthielt, und wenn ich den Durchschnitt der Zeilen nehmen würde, würde Excel die NA in der Berechnung ignorieren. In einer XLSX-Datei scheint dies nicht der Fall zu sein und das Ergebnis des Aufrufs der AVERAGE-Funktion ist auch # N/A, wenn Ihr Datenbereich NAs enthält – wrahman

+0

Ich sehe jetzt, dass die xlsx-Dateien auch NA-Werte in Berechnungen wie ich ignorieren vor, aber nicht # N/A Werte. Also ich denke, ich versuche jetzt zu bestimmen, wie ich write.xlsx erhalten würde, um NA anstelle von # N/A einzugeben. Wird ein besseres Beispiel in den Kommentaren hinzufügen – wrahman

Antwort

1

Dies geschieht entweder durch Verwendung von R oder Excel können

die xlsx-Paket verwenden, können Sie NA-Werte als leere Zellen

verlassen
write.xlsx(y, file = "test.xlsx", showNA=FALSE) 

Mit Excel können Sie die NA-Werte ignorieren. Nicht vergessen zu drücken ctrl +shift+enter

{=SUM(IF(ISNA(A3:D3),0,A3:D3))} 
+0

Danke, ich ging mit der ersten Lösung am Ende. – wrahman