Excelの 検索と置換 機能と同様に、ベクトル内の文字列から特定の文字を削除したいと思います。
これが私が始めるデータです:
group <- data.frame(c("12357e", "12575e", "197e18", "e18947")
最初の列から始めます。 e
を削除して2番目の列を作成します。
group group.no.e
12357e 12357
12575e 12575
197e18 19718
e18947 18947
正規表現と関数gsub()
を使って:
group <- c("12357e", "12575e", "197e18", "e18947")
group
[1] "12357e" "12575e" "197e18" "e18947"
gsub("e", "", group)
[1] "12357" "12575" "19718" "18947"
ここでgsub
がすることは、"e"
の各出現を空の文字列""
で置き換えることです。
さらに助けが必要な場合は?regexp
またはgsub
を参照してください。
正規表現はあなたの友達です:
R> ## also adds missing ')' and sets column name
R> group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947")) )
R> group
group
1 12357e
2 12575e
3 197e18
4 e18947
空の文字列で、できるだけ単純な置換パターンでgsub()
を使用します。
R> group$groupNoE <- gsub("e", "", group$group)
R> group
group groupNoE
1 12357e 12357
2 12575e 12575
3 197e18 19718
4 e18947 18947
R>
文字列を置き換える2つの方法を要約します。
group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947"))
1)gsub
を使う
group$group.no.e <- gsub("e", "", group$group)
2)stringr
パッケージを使う
group$group.no.e <- str_replace_all(group$group, "e", "")
どちらも欲望の出力を生成します。
group group.no.e
1 12357e 12357
2 12575e 12575
3 197e18 19718
4 e18947 18947
文字列を置き換えたい場合は、文字列のベクトルからデータフレームを作成する必要はありません。 @Andrieと@Dirk Eddelbuettelによって既に言及されているので、正規表現はそれに適しています。
ドットなどの特殊文字を置き換える場合は、次の例に示すように、完全な正規表現の構文を使用する必要があります。
ctr_names <- c("Czech.Republic","New.Zealand","Great.Britain")
gsub("[.]", " ", ctr_names)
これは作り出します
[1] "Czech Republic" "New Zealand" "Great Britain"
stringi packageを使用してください。
require(stringi)
group<-data.frame(c("12357e", "12575e", "197e18", "e18947"))
stri_replace_all(group[,1], "", fixed="e")
[1] "12357" "12575" "19718" "18947"
library(stringi)
group <- c('12357e', '12575e', '12575e', ' 197e18', 'e18947')
pattern <- "e"
replacement <- ""
group <- str_replace(group, pattern, replacement)
group
[1] "12357" "12575" "12575" " 19718" "18947"