2013-02-14 15 views
18

मैं आर में काम कर रहा हूं और बैकस्लैश से बचने में परेशानी कर रहा हूं। मैं लाइब्रेरी stringr का उपयोग कर रहा हूं।आर में बैकस्लैश से कैसे बचें?

install.packages("stringr", repos='http://cran.us.r-project.org') 
library("stringr") 

मैं str = str_replace_all(str, "\", "")

करना चाहते हैं तो मैं str = str_replace_all(str, "\\", "") कोशिश की, लेकिन यह काम नहीं करेगा।

मुझे क्या करना चाहिए?

+67

संदेह में, जब तक यह काम नहीं करता तब तक स्लेश जोड़ना जारी रखें। – joran

+0

मैं एक त्रुटि करता हूं। लेकिन मुझे gsub ("([\\])", "", str) –

+1

@joran के साथ समाधान मिला है कि उस टिप्पणी में थ्रेड में बाकी सब कुछ की तुलना में अधिक अपवर्तक हैं। ज्ञान के सही शब्द। – Dason

उत्तर

16

मैं एक समाधान है कि काम करता है

str = gsub("([\\])","", str) 
+14

मेरी टिप्पणी के अनुसार, एक पैटर्न के रूप में '" \\\\ "' का उपयोग करके भी काम करेगा (या तो 'gsub' या' str_replace_all'। – joran

+2

'gsub ("\\", "", str, fixed = TRUE) 'भी काम करेगा। आपको बस याद रखना होगा कि आर में, \\ 'केवल एक वर्ण है। निम्नलिखित का प्रयास करें:' x <-" मेरे \\ strin \\ g \\ \\ slashes के साथ "; प्रिंट (एक्स); बिल्ली (एक्स) ' – A5C1D2H2I1M1N2O1R2T1

+0

आरई में, \\ मैच \। जैसा कि आपको स्पीप की आवश्यकता है \ r को इसे समझने के लिए \, आपको 'gsub (" \\\\ "," ", str)' – Rcoster

8

उपयोग Hmisc::escapeRegex और Hmisc::escapeBS जो स्वत: बैकस्लैश और अन्य regex विशेष वर्ण निकल जाता है पाया।

+0

यहां तक ​​कि 'एचमिस्क' आपको पूरी तरह से 'escapeBS' नहीं देगा, क्योंकि आखिरकार बीएस अपरिहार्य है (विशेष रूप से प्रोग्रामिंग में, और 'प्रतिनिधि (' विशेष रूप से ', 2)' आर में)। – geneorama

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