2014-07-14 19 views
15

Tôi có chuỗi sau:chia một chuỗi bất kỳ số lượng chỗ

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

Tôi muốn chia chuỗi này bằng những khoảng trống, nhưng những khoảng trống có một số biến của không gian. Có cách nào để sử dụng hàm strsplit() để tách chuỗi này và trả về một vectơ gồm 8 phần tử đã xóa tất cả các khoảng trống không?

Một dòng mã được ưu tiên.

+6

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

Trả lời

24

Chỉ cần sử dụng strsplit với \\s+ chia trên:

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 

Hoặc, trong trường hợp này, scan cũng hoạt động: chức năng

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

strsplit bản thân công trình, bằng cách đơn giản sử dụng strsplit(ss, " +"):

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

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

HTH

Các vấn đề liên quan