2010年9月12日日曜日

gsubの使い方メモ

今回のスクリプトは文字列ベクトルの先頭の大文字をとってくるという
ことである。中には空白があったりするので、そのための処理を行う必要がある。
Rでも正規表現を用いることができるということで試してみた。

strs <- c("Hello World","Programming C","LISt Programming","isUpper")
# これで大文字でない箇所を空文字に置き換える
strs.abbr <- gsub("[^A-Z]","",strs) 
strs.abbr
# 先頭の大文字だけを抽出する
strs.split <- strsplit(strs," ");
head.concat <- function(x){
  head.chars <- substring(x,1,1) # 単語の先頭の文字群を得る
  head.upper <- gsub("[^A-Z]","",head.chars) # 大文字だけにする 
  paste(head.upper,collapse="") # 大文字のベクトルを結合
}
strs.abbr.head <- lapply(strs.split,head.concat)
strs.abbr.head <- unlist(strs.abbr.head)
strs.abbr.head

実行結果は以下のようになる。2番目の例では、途中の大文字は消去されている
ことが確認できる。

> strs.abbr
[1] "HW"   "PC"   "LISP" "U" 
> strs.abbr.head
[1] "HW" "PC" "LP" ""  

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計