आर में एक ही पंक्ति पर स्ट्रिंग और चर सामग्री प्रिंट करें


198

क्या एक ही लाइन पर टेक्स्ट और वेरिएबल कंटेंट प्रिंट करने का कोई तरीका है? उदाहरण के लिए,

wd <- getwd()
print("Current working dir: ", wd)

मुझे सिंटैक्स के बारे में कुछ भी नहीं मिला जो मुझे ऐसा करने की अनुमति देगा।

r  printing 

जवाबों:


299

आप के pasteसाथ उपयोग कर सकते हैंprint

print(paste0("Current working dir: ", wd))

या cat

cat("Current working dir: ", wd)

8
आप शायद चाहते हैं sep = ''या आपको एक अतिरिक्त स्थान मिलेगा।
हैडली

8
उपयोग करने पर cat()मुझे NULLअंत में मिलता है :(
ragesz

5
@ragesz मैं केवल अंत में अशक्त हो जाता हूं यदि आप बिल्ली को एक प्रिंट के अंदर डालते हैं जैसे: print(cat("test", var)) जो होना चाहिएcat("test", var)
स्पाइडरफायर

62

{गोंद} बहुत बेहतर स्ट्रिंग प्रक्षेप प्रदान करता है, मेरा अन्य उत्तर देखें । इसके अलावा, जैसा कि Dainis सही उल्लेख करता है, sprintf()समस्याओं के बिना नहीं है।

वहाँ भी है sprintf():

sprintf("Current working dir: %s", wd)

कंसोल आउटपुट पर प्रिंट करने के लिए, का उपयोग करें cat()या message():

cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))

एक और अच्छा विकल्प! यह अन्य स्क्रिप्टिंग भाषाओं के समान है और बहुत सुविधाजनक है यदि आपके पास एक पाठ है जहां आप कई चर लागू करना चाहते हैं। धन्यवाद!

1
अब तक सबसे सुविधाजनक विकल्प, खासकर यदि आप एक फ़ंक्शन तर्क की रचना कर रहे हैं। पेस्ट के साथ यह जल्दी से एक अपठनीय गड़बड़ हो जाता है।
user27636

2
ध्यान दें कि sprintfप्रिंट नहीं होता है, यह सिर्फ स्ट्रिंग को प्रारूपित करता है। स्क्रिप्ट के अंदर प्रिंट (स्प्रिंटफ (...) जैसा कुछ जरूरी है।
CHS


17

इसका उपयोग करने के लिए सबसे आसान तरीका है paste()

> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"

paste0() निम्नलिखित में परिणाम होगा:

> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"

सूचना स्ट्रिंग और x के बीच कोई डिफ़ॉल्ट सेपरेटर नहीं है। स्ट्रिंग के अंत में एक स्थान का उपयोग करना एक त्वरित फिक्स है:

> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"

फिर या तो फ़ंक्शन के साथ गठबंधन करें print()

> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"

या

> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"

जैसा कि अन्य उपयोगकर्ताओं ने कहा है, आप भी उपयोग कर सकते हैं cat()


14

{गोंद} पैकेज स्ट्रिंग प्रक्षेप प्रदान करता है। उदाहरण में, {wd}चर की सामग्री के साथ प्रतिस्थापित किया जाता है। जटिल भाव भी समर्थित हैं।

library(glue)

wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c

2019-05-13 को रेप्रेक्स पैकेज (v0.2.1) द्वारा बनाया गया

ध्यान दें कि मुद्रित आउटपुट में [1]कलाकृतियों और "उद्धरण शामिल नहीं हैं , जिनके लिए अन्य उत्तर उपयोग करते हैं cat()


8

जैसा कि अन्य उपयोगकर्ताओं ने कहा, बिल्ली () शायद सबसे अच्छा विकल्प है।

@krlmlr ने स्प्रिंटफ () का उपयोग करने का सुझाव दिया और वर्तमान में यह तीसरा स्थान है। स्प्रिंटफ () एक अच्छा विचार नहीं है। आर प्रलेखन से:

प्रारूप स्ट्रिंग को OS के स्प्रिंटफ फ़ंक्शन से नीचे पारित किया जाता है, और गलत प्रारूप आर प्रक्रिया को क्रैश करने के लिए बाद का कारण बन सकता है।

स्प्रिंट () ओवर कैट या अन्य विकल्पों का उपयोग करने का कोई अच्छा कारण नहीं है।


2

R में चर मानों के साथ स्ट्रिंग को संयोजित करने के लिए आप paste0 या कैट विधि का उपयोग कर सकते हैं

उदाहरण के लिए:

paste0("Value of A : ", a)

cat("Value of A : ", a)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.