Rの文字列ベクトルで、文字列を指定して要素を削除する方法をお伝えする。
通常、ベクトルの要素を削除する場合は、次のように添字にマイナスを付加して削除する。


> s <- c("吾輩は", "猫である。", "名前は", "まだ無い。")

> # 1番目の要素を削除
> s[-1]
[1] "猫である。" "名前は"     "まだ無い。"

> # 1番目から2番目の要素を削除
> s[-1:-2]
[1] "名前は"     "まだ無い。"

> # 1番目と3番目の要素を削除
> s[c(-1, -3)]
[1] "猫である。" "まだ無い。"

文字列を指定して要素を直接削除する場合は、which関数を利用し指定した文字列の添字を取得してから、マイナスを付加して削除すれば良い。具体的には次のようになる。


> s <- c("吾輩は", "猫である。", "名前は", "まだ無い。")

> # 「吾輩は」を削除
> s[-which(s %in% "吾輩は")] 
[1] "猫である。" "名前は"     "まだ無い。"

> # 「吾輩は」と「まだ無い。」を削除
> s[-which(s %in% c("吾輩は", "まだ無い。"))] 
[1] "猫である。" "名前は" 
R 文字列ベクトルで文字列を指定して要素を削除する方法