Rで文字を抽出したい場合には、substring関数を使います。Excelで言うとleft関数に相当します。
a <- c("123456")
substring(text=a, first=1, last=3)
substring(text=a, first=1, last=3)
結果、"123" が出てきます。
textでは調べたい文字(またはオブジェクト)を指定します。
firstでは抽出したい文字の開始位置を指定します(この場合1文字目)
lastでは抽出したい文字の終了位置を指定します(この場合3文字目)
※なお、text, first, last の記載は省いても動作します。
firstでは抽出したい文字の開始位置を指定します(この場合1文字目)
lastでは抽出したい文字の終了位置を指定します(この場合3文字目)
※なお、text, first, last の記載は省いても動作します。
しかし、文字の右端(末端)から指定したい時に使える関数はRにはありません。
Excelでいうとright関数、いわゆる後方参照ができる関数はありません。
しようがないのでイカのようにします。
(1)nchar関数で、対象の列の文字数を計算する
(2)substring関数で、末尾の文字から指定する
(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文字抽出する
nc <- nchar(moji) #各文字の文字数をnc に格納します
substring(moji, nc, nc) #文字列右端から1文字抽出する
substring(moji, nc-1, nc) #文字列右端から2文字抽出する
substring(moji, nc-2, nc) #文字列右端から3文字抽出する
これで後方参照ができるようになります。
結果
この記事へのコメント
言霊