特定のテキストの特定の文字の後の文字列を削除する


15

以下のようなデータセットがあります。文字©の後のすべての文字を削除したい。Rでそれを行うにはどうすればよいですか?

data_clean_phrase <- c("Copyright © The Society of Geomagnetism and Earth", 
"© 2013 Chinese National Committee ")

data_clean_df <- as.data.frame(data_clean_phrase)

特定の文字の後、または特定のインデックスの後ですか?
Dawny33

特定のキャラクターの後:©
ハミデ

次に、既存の回答があなたの質問を解決したようです:)
Dawny33

回答:


19

例えば:

 rs<-c("copyright @ The Society of mo","I want you to meet me @ the coffeshop")
 s<-gsub("@.*","",rs)
 s
 [1] "copyright "             "I want you to meet me "

または、@文字を保持する場合:

 s<-gsub("(@).*","\\1",rs)
 s
 [1] "copyright @"             "I want you to meet me @"

編集:あなたが望むのが最後の@からすべてを削除することである場合は、適切な正規表現でこの前の例に従う必要があります。例:

rs<-c("copyright @ The Society of mo located @ my house","I want you to meet me @ the coffeshop")
s<-gsub("(.*)@.*","\\1",rs)
s
[1] "copyright @ The Society of mo located " "I want you to meet me "

探しているマッチングを考えると、subとgsubの両方が同じ答えを与えます。


ありがとうございました。そして、テキストの最後の©に対してそれをしたい場合はどうなりますか。これを考慮してください:c( "©aaa©bbb")-> c( "©aaa")
ハミデ

@HamidehIraj 実行には正規表現を使用できます。
Dawny33

1
どういたしまして。正規表現に慣れると、最後の@文字から簡単に削除できることがわかります。このケースも含めるように回答を編集しました。
MASL
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.