一所懸命に手抜きする

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

R言語でRight関数を

Right()関数

 多くの言語にはRight()関数がありますが、R言語には標準では文字列の右側x文字を切り出すという関数が見当たりません。業務上それなりにニーズがあるので作成しました。
 ご自由にお使いください。エラートラップはしていませんので必要に応じて加工して下さい。

[R]ユーザー関数 Right()
#----------------------------------------------------------#
#  Right(文字列ベクトル,右から何文字切り出すか)
#----------------------------------------------------------#
Right<-function(x,chr){
  return(substr(x,nchar(x)-chr+1,nchar(x)))
}
#----------------------------------------------------------#

動作確認

3文字の文字列から右側2文字抽出
Right("abc",2)  
##[1] "bc"  
Right(c("abc","vwxyz","山田太郎"),2)  
##[1] "bc" "yz" "太郎"  
右側0文字やマイナス文字数抽出は""を返す
Right("abc",-2)  
##[1] ""
対象文字列より長い文字数を抽出しようとすると元の文字列そのものを返す
Right("abc",5)  
##[1] "abc"

ご使用は自己責任でお願いします。

もとになった関数 substr()

[R] substr()
#----------------------------------------------------------#
#  substr(文字列 , 抽出開始位置, 抽出終了位置)
#----------------------------------------------------------#
substr("1234山67", 4, 6)
##[1] "4山6"
substr(c("鈴木太郎","abcdefg","xy"), 3, 4)
##[1] "太郎"  "cd"  ""
#----------------------------------------------------------#

a-habakiri.hateblo.jp