2017-01-12 1 views
0

Ich bin neu in R, und versuchen, ein data.frame als CSV-Datei zu exportieren, aber die erste Zeile enthält Zeichenfolgen, die zitiert werden müssen, wo der Rest Die Daten sind numerisch (aber mit NA als Optionen, die als "NA" geschrieben werden) und sollten nicht zitiert werden. Mein Code ist:Wie zitieren erste Zeile nur beim Schreiben von R .csv-Dateien

Meine Frage ist: Wie schreibe ich die Matrix wie oben erwähnt in der geeigneten Weise?

Ich hatte daran gedacht, die erste Zeile zu löschen und das mit "quote = T" zu speichern, und dann als append alle Zeilen außer der ersten Zeile mit "quote = F" zu schreiben. Das erscheint mir etwas amateurhaft. So

Dank

,> 900 Spalten, hier die ersten 3 Spalten, aber anders als Spalte # 1 ist eine ID (als row.name) alle anderen Spalten im gleichen Format/Stil sind wie folgt.

Sorry ... kein Glück mit der Formatierung dieses in eine Tabelle:

id  00010;T;C 00025;AC;A 
X110020 1   2 
X110030 1   2 
X110050 1   2 
X110150 1   NA 

Der Ausgang für:

> str(mt.collapsed[, 1:3]) 
num [1:678, 1:3] 1 1 1 1 1 1 1 1 1 1 ... 
- attr(*, "dimnames")=List of 2 
..$ : chr [1:678] "X110020" "X110030" "X110050" "X110080" ... 
..$ : chr [1:3] "00010;T;C" "00025;AC;A" "00044;C;CG" 
+0

Wie sieht Ihre Matrix aussehen? Können Sie nur Spaltennamen anstelle der ersten Zeile verwenden? Das Einstellen der Klasse macht es nicht unbedingt so ... Sie könnten 'NA' über die Konvertierung einführen. Das Anzeigen von 'head (mt.collapsed)' (und vielleicht 'str (mt.collapsed)' würde gute Informationen liefern. – Gregor

+0

Die erste Zeile hat "id" als erste Zelle, einen Code für die nächsten ~ 900 Spalten wie "00065; C; T "(es ist eine Phänotyp-Datendatei für GenABEL-Import), –

+0

Posting' Kopf (mt.collapsed) 'und' str (mt.collapsed) 'würde gute Informationen liefern. ** Bitte editieren Sie diese Ergebnisse in Ihre Frage. ** – Gregor

Antwort

0

Vielleicht die erste Zeile wie die Spaltennamen der Matrix verwenden? Der Code:

foo = matrix(c(1,2,3,4,5,6), ncol = 2) 
colnames(foo) = c("a", "b") 

gibt die folgende Matrix mit benannten Spalten.

 a b 
[1,] 1 4 
[2,] 2 5 
[3,] 3 6 

Dann, wenn Sie es in eine CSV-Datei schreiben:

write.csv(foo, "foo.csv", row.names = F) 

die Datei enthält:

"a","b" 
1,4 
2,5 
3,6