名前の先頭にいくつかの名前があり、末尾に.
という文字のベクトルがありますが、そうでないものもあります。次に例を示します。Rの先頭または末尾の `.`文字を条件付きで削除します
test <- c('.name.1.','name.2','.name.3.')
私は、条件付きでこれらの名前で.
文字を先頭と末尾削除したい
c('name.1','name.2','name.3')
名前の先頭にいくつかの名前があり、末尾に.
という文字のベクトルがありますが、そうでないものもあります。次に例を示します。Rの先頭または末尾の `.`文字を条件付きで削除します
test <- c('.name.1.','name.2','.name.3.')
私は、条件付きでこれらの名前で.
文字を先頭と末尾削除したい
c('name.1','name.2','name.3')
使用正規表現:
test <- c('.name.1.','name.2','.name.3.')
gsub('^\\.|\\.$', '', test)
# [1] "name.1" "name.2" "name.3"
2つのバックスラッシュ、\\
、正規表現では、実際に任意の文字を意味しますドット、.
を逃れます。キャレットは、^
、文字列の先頭、ドル、$
、文字列の最後をマークします。 |
は、論理 "or"です。したがって、本質的に、正規表現は、文字列の先頭のドットまたは文字列の最後のドットと一致し、空の文字列で置き換えられます。
正規表現の詳細については、hereと、gsubおよび関連する関数hereに関する情報を参照してください。
ます。またstringr
から
str_extract
を使用することができます
substr
機能を使用してクイック機能を返すために:
fun1 <- function(x) substr(x, 1 + (1 * as.numeric(substr(x,1,1)=='.')), nchar(x) - (1 * as.numeric(substr(x, nchar(x), nchar(x)) == '.')))
substr
を使用して、文字列の最初と最後の要素にある.
を確認してから、を使用します0を再度入力して、テキストの特定部分を抽出します。たとえば、最初の文字に.
があり、2番目の文字にはない場合、substr(text, 2, nchar(text))
が抽出されます。
fun1(test)
[1] "name.1" "name.2" "name.3"
:
library(stringr)
str_extract(test, "\\w+\\.\\d")
またはstr_replace_all
(gsub
からstringr
換算):
str_replace_all(test, "[.](.+)[.]", "\\1")
# [1] "name.1" "name.2" "name.3"
楽しみのためだけに、ここでsubstring
とgrepl
と方法があります。
substring(test, 1L + grepl("^\\.", test), nchar(test) - grepl("\\.$", test))
[1] "name.1" "name.2" "name.3"
これはsubstr
でsubstring
を置き換える動作します。これらの関数の優れた点は、2番目と3番目の引数にベクトルをとることです。ここでは、grepl
を使用して、2番目の引数の1Lと2Lの間、最後の文字と最後から2番目の文字の位置の間で増分できます。