2013-05-08 12 views
6

Ich habe bestimmte Variablen, die lm in R automatisch mit Backticks/Back-Anführungszeichen, z. Variablen mit Doppelpunkten in den Namen.Entfernen von Backticks in R-Ausgabe

Nach einiger Verarbeitung versuche ich, die Variablen und Koeffizienten des linearen Modells mit write.table zu schreiben. Leider sind die Backticks auch ausgeschrieben.

Wie kann ich verhindern, dass diese Backticks geschrieben werden?

Um ein einfaches, aber unrealistisch Beispiel:

d <- data.frame(`1`=runif(10), y=runif(10), check.names=F) 
l <- lm(y ~ `1`, d) 
write.table(data.frame(l$coefficients), file="lm.coeffs", quote=F, sep="\t", col.names=F) 

Die Datei lm.coeffs wird - ganz offensichtlich - `1` in der ersten Spalte der Ausgabe statt 1 hat. Wie entferne ich Backticks außerhalb der Postprocessing in einem anderen Skript aus der Ausgabe?

Antwort

9

Sie können das Nachbearbeitung in R tun. Speichern Sie die Ausgabe in einer Variablen unter Verwendung capture.output statt einer Datei. Entfernen Sie die Backticks mit gsub. Schließlich, drucken Sie die Ausgabe in eine Datei mit cat:

report <- capture.output(write.table(data.frame(l$coefficients), 
         quote = FALSE, sep = "\t", col.names = FALSE)) 

cat(gsub("`", "", report), sep = "\n", file = "lm.coeffs") 
+0

+1 Ich hätte nie gedacht, was 'write.table' unsichtbar zurück! – mnel

Verwandte Themen