2012-06-01 6 views
5

के साथ आर में स्ट्रस्प्लिट में मेरे पास बड़ी मात्रा में डेटा है जहां डेलीमीटर एक बैकस्लैश है। मैं इसे आर में संसाधित कर रहा हूं और मुझे स्ट्रिंग को विभाजित करने में कठिनाई हो रही है क्योंकि बैकस्लैश मेटाएक्टेक्टर है। उदाहरण के लिए, एक स्ट्रिंग इस प्रकार दिखाई देगा:एक मेटाएक्टेक्टर

1128\0019\XA5\E2R\366\00=15 

और मैं इसे \ चरित्र के साथ विभाजित करना चाहते हैं, लेकिन जब मैं strsplit कमांड चलाएँ:

strsplit(tempStr, "\\") 
Error in strsplit(tempStr, "\\") : 
    invalid regular expression '\', reason 'Trailing backslash' 

जब मैं इस्तेमाल किया "करने की कोशिश निश्चित "विकल्प है, यह है क्योंकि यह बैकस्लैश के बाद कुछ उम्मीद कर रही है नहीं चलता है:

strsplit(tempStr, "\", fixed = TRUE) 

दुर्भाग्य से, मैं नहीं अन्य प्रोग्राम के साथ डेटा preprocess क्योंकि डेटा gener है सकते हैं दैनिक परेड

उत्तर

14

गए कोड का लाइन है (हालांकि आप यह स्पष्ट रूप से कहते हैं नहीं):

strsplit(tempStr, "\\") 

और, होना चाहिए

strsplit(tempStr, "\\\\") 

इस रूप में "\\" पढ़ा जाएगा जो नियमित रूप से अभिव्यक्ति एक "\" के रूप में समझ जाएगी।

+0

दुर्भाग्य से इस काम नहीं कर रहा है ... मैं बस एक ही स्ट्रिंग वापस मिलता है। कोई अन्य विचार? धन्यवाद। – newRUser

+2

क्या आप एक स्व-निहित उदाहरण प्रदान कर सकते हैं (यानी, इसे आर कोड में प्राप्त करें ताकि हम इसे चला सकें?) –

+0

ऐ, एक ही समस्या ... जब मैं करता हूं, तो यह डबल स्लैश की किसी भी घटना को हटा देता है, लेकिन \\ उपरोक्त त्रुटि प्राप्त करता है, और \\\ निम्नलिखित उद्धरण चिह्न से बचने की कोशिश करता है ... –

3

मुझे संदेह है कि आपका डेटा किसी प्रकार की फ़ाइल में है। यदि ऐसा है, तो read.table का उपयोग करें, लेकिन स्पष्ट रूप से डेलीमीटर निर्दिष्ट करें। उदाहरण के लिए, मान लें कि आपकी फ़ाइल था:

a\b\c\d 
e\f\g\h 

तो आर में यह पढ़ने के लिए, आदेश का उपयोग करें:

read.table("file.txt", sep="\\") 
-1

इस प्रयास करें:

strsplit(tempStr, "\"") 
संबंधित मुद्दे