2014-07-14 12 views
15

ho la seguente stringa:dividere una stringa da un qualsiasi numero di spazi

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

voglio dividere questa stringa dalle lacune, ma i vuoti hanno un numero variabile di spazi. C'è un modo per usare la funzione strsplit() per dividere questa stringa e restituire un vettore di 8 elementi che ha rimosso tutti gli spazi?

Una riga di codice è preferibile.

+6

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

risposta

24

Basta usare strsplit con \\s+ di dividere il:

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 

O, in questo caso, scan funziona anche: la funzione

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

strsplit sé funziona, semplicemente usando strsplit(ss, " +"):

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

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

HTH

Problemi correlati