一所懸命に手抜きする

デスクワークばかりのスポーツ嫌いで50歳も過ぎ、いよいよ足腰に衰えを感じつつある昨今。

R言語ユーザー関数xlTrimはExcelのTrimを再現(文字列の両側の空白を削除。文字列中空白を1個にする)

前回のxlTrim()関数

 a-habakiri.hateblo.jp
 前回紹介したxlTrimは、Excelのワークシート関数trimの再現を試みたものです。
 文字列の前後の空白を削除し、文字列中の空白は1つにするというものです。

xlTrim<- function(str,.what="  \t\n\r",.after=" ")
        {
            # .after  置き換え後の文字列中空白
        str<-myTrim(str,.where="both",.what)
        if(toupper(.after)=="EXCEL")
            {
            str<-gsub(" [[:blank:]]+"," ",str)
            str<-gsub(" [[:blank:]]+"," ",str)
            str<-gsub("\t[[:blank:]]+","\t",str)
        }else{
            str<-gsub("[[:blank:]]+",.after,str)
            }
        return(str)
        }

必要性(1)

 Excelは誰でも使えるため、例えば社員の氏名を入力した場合、
苗字と名前の間に空白を入れたり入れなかったり、
入れたとして半角だったり全角だったり、
空白を何個入れるかもバラバラ・・・
などということがざらです。

使用例
xlTrim("  山田  太郎  ")
##山田 太郎

必要性(2)

 英文を入力する際、単語と単語の間の空白を全部1個にするなどといった使い方が出来ます。

使用例
xlTrim(" I    have    a pen    .  ")
##I have a pen.

有効活用してください。