2014-07-14 7 views
15

के किसी भी संख्या से एक स्ट्रिंग मैं निम्नलिखित स्ट्रिंग है:स्प्लिट रिक्त स्थान

[1] "10012  ----  ----  ----  ----  CAB UNCH     CAB" 

मैं अंतराल से इस स्ट्रिंग विभाजित करना चाहते हैं, लेकिन अंतराल रिक्त स्थान के परिवर्तनशील है। क्या इस स्ट्रिंग को विभाजित करने के लिए strsplit() फ़ंक्शन का उपयोग करने का कोई तरीका है और सभी तत्वों को हटा चुके 8 तत्वों का वेक्टर लौटाता है?

कोड की एक पंक्ति को प्राथमिकता दी जाती है।

+6

'read.table (text = yourstring)'? – Henrik

उत्तर

24

बस strsplit\\s+ साथ पर विभाजित करने के लिए उपयोग करें:

x <- "10012  ----  ----  ----  ----  CAB UNCH  CAB" 
x 
# [1] "10012  ----  ----  ----  ----  CAB UNCH  CAB" 
strsplit(x, "\\s+")[[1]] 
# [1] "10012" "----" "----" "----" "----" "CAB" "UNCH" "CAB" 
length(.Last.value) 
# [1] 8 

या, इस मामले में, scan भी काम करता है:

scan(text = x, what = "") 
# Read 8 items 
# [1] "10012" "----" "----" "----" "----" "CAB" "UNCH" "CAB" 
7

strsplit समारोह ही है, काम करता है बस strsplit(ss, " +") का उपयोग करके:

ss = "10012  ----  ----  ----  ----  CAB UNCH     CAB" 

strsplit(ss, " +") 
[[1]] 
[1] "10012" "----" "----" "----" "----" "CAB" "UNCH" "CAB" 

एचटीएच

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