library(stringr)
この記事はR Advent Calender 2014@Qiita1日目の記事「このパッケージがすごい2014」の一部です
Rでは文字列操作を扱う関数がいくつかありますが、知識がないと複雑でわかりにくいです。そんな文字列操作を、統一的な表現により簡単に扱えるようにしたパッケージがstringr
です。
strinrパッケージ
の引数は基本的にstringとpatternを指定します。patternには正規表現を用いることが可能です。
paste関数
と似ていますが、文字と文字の間は空白でつながらないのが特徴です
str_c("ABC", "456", "ghi")
## [1] "ABC456ghi"
paste("ABC", "456", "ghi")
## [1] "ABC 456 ghi"
str_length("ABC")
## [1] 3
hw <- "Hello World!"
str_sub(hw, start = 3, end = 5)
## [1] "llo"
str_sub(hw, start = -6)
## [1] "World!"
str_dup(hw, times = 2)
## [1] "Hello World!Hello World!"
message <- c("Hello :)", "Goodbye x(")
str_detect(message, ":)")
## [1] TRUE FALSE
マッチする場合にはTRUEを返します
str_locate(message, "o")
## start end
## [1,] 5 5
## [2,] 2 2
shopping_list <- c("apples x4", "flour", "sugar", "milk x2")
str_extract(shopping_list, "[a-z]+")
## [1] "apples" "flour" "sugar" "milk"
str_replace(message, "[[:punct:]]", "!") # 置換されるのは文字列の最初のみ
## [1] "Hello !)" "Goodbye x!"
str_replace_all(message, "[[:punct:]]", "!") # 文字列内で条件に合う部分をすべて置換
## [1] "Hello !!" "Goodbye x!"
2015年は正規表現をきちんと勉強したいですね...