Rで後方参照(ExcelでいうRIGHT関数)を行う方法

Rで文字を抽出したい場合には、substring関数を使います。Excelで言うとleft関数に相当します。
a <- c("123456")
substring(text=a, first=1, last=3)

結果、"123" が出てきます。

textでは調べたい文字(またはオブジェクト)を指定します。
firstでは抽出したい文字の開始位置を指定します(この場合1文字目)
lastでは抽出したい文字の終了位置を指定します(この場合3文字目)
 ※なお、text, first, last の記載は省いても動作します。

しかし、文字の右端(末端)から指定したい時に使える関数はRにはありません。
 Excelでいうとright関数、いわゆる後方参照ができる関数はありません。

しようがないのでイカのようにします。
(1)nchar関数で、対象の列の文字数を計算する
(2)substring関数で、末尾の文字から指定する

moji <- c("あいうえお", "123456", "subspecies", "かき")
nc <- nchar(moji)  #各文字の文字数をnc に格納します
substring(moji, nc, nc)  #文字列右端から1文字抽出する
substring(moji, nc-1, nc) #文字列右端から2文字抽出する
substring(moji, nc-2, nc) #文字列右端から3文字抽出する

これで後方参照ができるようになります。

結果
 2021-05-22.png

この記事へのコメント

  • 言霊

    コトタマ
    2023年06月29日 22:09