2013-05-08 9 views
6

मेरे पास कुछ चर हैं जो lm आर में स्वचालित रूप से बैकटिक्स/बैक कोट्स के साथ लपेटते हैं, उदा। वेरिएबल्स जिनमें नामों में कोलन हैं।आर आउटपुट में बैकटिक्स को हटा रहा है

कुछ प्रसंस्करण के बाद, मैं write.table के साथ रैखिक मॉडल के चर और गुणांक लिखने की कोशिश कर रहा हूं। दुर्भाग्यवश, बैकटीक्स भी लिखे गए हैं।

मैं इन बैकटिक्स को लिखे जाने से कैसे रोक सकता हूं? - काफी स्पष्ट रूप से - `1` बजाय उत्पादन 1 के पहले स्तंभ में है

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) 

फ़ाइल lm.coeffs देगा:

एक सरल लेकिन अवास्तविक उदाहरण के लिए। किसी अन्य स्क्रिप्ट में पोस्टप्रोकैसिंग के बाहर, मैं आउटपुट से बैकटिक्स कैसे हटा सकता हूं?

उत्तर

9

आप पोस्ट-प्रसंस्करण आर में कर सकते हैं। फ़ाइल के बजाय, आउटपुट को capture.output का उपयोग करके एक चर में स्टोर करें। gsub का उपयोग कर बैकटिक्स निकालें। अंत में, 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 मैं क्या 'write.table' अदृश्य रूप से देता है कभी नहीं सोचा था! – mnel

संबंधित मुद्दे