web-dev-qa-db-ja.com

任意の数のスペースで文字列を分割します

私は次の文字列を持っています:

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

この文字列をギャップで分割したいのですが、ギャップには可変数のスペースがあります。 strsplit()関数を使用してこの文字列を分割し、すべてのギャップを削除した8要素のベクトルを返す方法はありますか?

1行のコードが推奨されます。

26
Stu

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"  
34

strsplit関数自体は、単にstrsplit(ss, " +")を使用して機能します。

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

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

HTH

10
rnso