313

Excelの検索と置換機能と同様に、ベクトル内の文字列から特定の文字を削除したいと思います。

これが私が始めたデータです:

group <- data.frame(c("12357e", "12575e", "197e18", "e18947")

最初の列から始めます。e'sを削除して2番目の列を作成したい:

group       group.no.e
12357e      12357
12575e      12575
197e18      19718
e18947      18947
4

6 に答える 6

463

正規表現と関数を使用すると、次のようになります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を参照してください。

于 2012-08-13T14:29:47.347 に答える
53

正規表現はあなたの友達です:

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> 
于 2012-08-13T14:30:27.980 に答える
34

文字列を置き換える 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
于 2015-08-04T14:11:31.363 に答える
5

stringiパッケージを使用します。

require(stringi)

group<-data.frame(c("12357e", "12575e", "197e18", "e18947"))
stri_replace_all(group[,1], "", fixed="e")
[1] "12357" "12575" "19718" "18947"
于 2015-11-22T07:48:27.650 に答える