R स्क्रिप्टिंग भाषा में, मैं कैसे पाठ की पंक्तियाँ लिखता हूँ, उदाहरण के लिए निम्न दो पंक्तियाँ
Hello
World
"output.txt" नामक फ़ाइल में?
R स्क्रिप्टिंग भाषा में, मैं कैसे पाठ की पंक्तियाँ लिखता हूँ, उदाहरण के लिए निम्न दो पंक्तियाँ
Hello
World
"output.txt" नामक फ़ाइल में?
जवाबों:
fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)
writeLines()
लगभग दस गुना तेज है और फिर का संयोजन sink()
औरcat()
मैं cat()
इस उदाहरण में कमांड का उपयोग करूंगा :
> cat("Hello",file="outfile.txt",sep="\n")
> cat("World",file="outfile.txt",append=TRUE)
तब आप R के साथ से परिणाम देख सकते हैं
> file.show("outfile.txt")
hello
world
एक साधारण के बारे में क्या है writeLines()
?
txt <- "Hallo\nWorld"
writeLines(txt, "outfile.txt")
या
txt <- c("Hallo", "World")
writeLines(txt, "outfile.txt")
"Hallo\nWorld"
में चरित्र प्रकार की एक लंबाई एक वेक्टर है। बस कोशिश करेंtxt <- "Hallo\nWorld"; is.character(txt) && length(txt) == 1 && is.vector(txt)
writeLines(txt, con="outfile.txt")
।
> coefficients<-summary(model) > writeLines(coefficients, "coefficients") Error in writeLines(coefficients, "coefficients") : invalid 'text' argument
मैं सुझाव देता हूँ:
writeLines(c("Hello","World"), "output.txt")
यह वर्तमान स्वीकृत उत्तर की तुलना में छोटा और अधिक प्रत्यक्ष है। यह करना आवश्यक नहीं है:
fileConn<-file("output.txt")
# writeLines command using fileConn connection
close(fileConn)
क्योंकि प्रलेखन के लिए writeLines()
कहते हैं:
यदि
con
एक वर्ण स्ट्रिंग है, तो फ़ंक्शन कॉलfile
को एक फ़ाइल कनेक्शन प्राप्त करने के लिए कहता है जो फ़ंक्शन कॉल की अवधि के लिए खोला जाता है।
# default settings for writeLines(): sep = "\n", useBytes = FALSE
# so: sep = "" would join all together e.g.
पाइप के साथ और write_lines()
रीड से tidyverse संस्करण
library(tidyverse)
c('Hello', 'World') %>% write_lines( "output.txt")
आर में एक फ़ाइल के लिए पाठ की पंक्तियों को लिखने के छोटे तरीके बिल्ली या राइटलाइन के साथ महसूस किए जा सकते हैं जैसा कि पहले से ही कई उत्तरों में दिखाया गया है। कुछ सबसे छोटी संभावनाएँ हो सकती हैं:
cat("Hello\nWorld", file="output.txt")
writeLines("Hello\nWorld", "output.txt")
यदि आपको "\ n" पसंद नहीं है तो आप निम्न शैली का भी उपयोग कर सकते हैं:
cat("Hello
World", file="output.txt")
writeLines("Hello
World", "output.txt")
जबकि राइटलाइन फ़ाइल के अंत में एक नई पंक्ति जोड़ता है जो बिल्ली के लिए मामला नहीं है । इस व्यवहार को इसके द्वारा समायोजित किया जा सकता है:
writeLines("Hello\nWorld", "output.txt", sep="") #No newline at end of file
cat("Hello\nWorld\n", file="output.txt") #Newline at end of file
cat("Hello\nWorld", file="output.txt", sep="\n") #Newline at end of file
लेकिन मुख्य अंतर यह है कि बिल्ली आर वस्तुओं का उपयोग करती है और तर्क के रूप में एक चरित्र वेक्टर लिखती है । इसलिए बाहर लिखना जैसे कि संख्या 1:10 को राइटलाइन के लिए डालना पड़ता है जबकि इसे बिल्ली में इस्तेमाल किया जा सकता है:
cat(1:10)
writeLines(as.character(1:10))
संभावनाओं को पूरा करने writeLines()
के लिए sink()
, यदि आप चाहें, के साथ उपयोग कर सकते हैं:
> sink("tempsink", type="output")
> writeLines("Hello\nWorld")
> sink()
> file.show("tempsink", delete.file=TRUE)
Hello
World
मेरे लिए, यह हमेशा उपयोग करने के लिए सबसे अधिक सहज लगता है print()
, लेकिन यदि आप ऐसा करते हैं कि आउटपुट वह नहीं होगा जो आप चाहते हैं:
...
> print("Hello\nWorld")
...
[1] "Hello\nWorld"
सबसे अच्छे उत्तर के आधार पर :
file <- file("test.txt")
writeLines(yourObject, file)
close(file)
ध्यान दें कि yourObject
स्ट्रिंग प्रारूप में होने की आवश्यकता है; as.character()
यदि आप की जरूरत है कन्वर्ट करने के लिए उपयोग करें।
लेकिन यह प्रत्येक सेव प्रयास के लिए बहुत अधिक टाइपिंग है । आइए RStudio में एक स्निपेट बनाएं।
वैश्विक विकल्पों में >> कोड >> स्निपेट, इसे टाइप करें:
snippet wfile
file <- file(${1:filename})
writeLines(${2:yourObject}, file)
close(file)
फिर, कोडिंग के दौरान, टाइप करें wfile
और दबाएंTab ।
file <- file(...)
लाइन मेरे लिए संदिग्ध लग रहा है। क्या यह दोनों file
एक कार्य के रूप में और file
एक नया अर्थ निर्दिष्ट नहीं कर रहा है? क्या file()
यह कोड कोड चलने के बाद भी काम करता है ? अभी खुद को परखने के लिए R इंस्टॉलेशन तक पहुंच नहीं है ...
एक साधारण के बारे में क्या write.table()
?
text = c("Hello", "World")
write.table(text, file = "output.txt", col.names = F, row.names = F, quote = F)
पैरामीटर col.names = FALSE
और row.names = FALSE
txt में पंक्ति और स्तंभ नामों को बाहर करना सुनिश्चित करें, और पैरामीटर quote = FALSE
txt में प्रत्येक पंक्ति के आरंभ और अंत में उन उद्धरण चिह्नों को बाहर करता है। डेटा को वापस पढ़ने के लिए, आप उपयोग कर सकते हैं text = readLines("output.txt")
।
आर के नए संस्करणों में, writeLines
आपके पाठ में रिटर्न और रिक्त स्थान को संरक्षित करेगा, इसलिए आपको \n
लाइनों के अंत में शामिल करने की आवश्यकता नहीं है और आप एक फ़ाइल में पाठ का एक बड़ा हिस्सा लिख सकते हैं। यह उदाहरण के साथ काम करेगा,
txt <- "Hello
World"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)
लेकिन आप इस संरचना का उपयोग केवल संरचना (लाइनब्रेक या इंडेंट) के साथ पाठ को शामिल करने के लिए भी कर सकते हैं
txt <- "Hello
world
I can
indent text!"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)