[R言語]ベクトルの要素を削除するには?

R言語

どうも、ちょげ(@chogetarou)です。

ベクトル(vector)の要素を削除する方法を紹介します。

スポンサーリンク

方法

ベクトル(vector)の要素を削除する方法は、2つあります。

インデックスで削除

ひとつは、指定したインデックスで削除する方法です。

まず、ベクトル名と[]を記述します。

そして、[]内に、削除するインデックスの負(マイナス)の値を指定します。

#vect=対象のベクトル
result <- vect[-index]

上記の[]は、対象のベクトル(vector)から特定のインデックス(index)の要素を削除した結果を返します。

使用例

nums <- c(1, 2, 3, 4, 5)

#インデックス3を削除
index = 3
result <- nums[-index]

result
出力:
[1] 1 2 4 5

値で削除

もうひとつは、指定した値で削除する方法です。

まず、ベクトル名と[]を記述します。

そして、[]内に、「ベクトル != 値」を指定します。

#vect=対象のベクトル, value=削除する値
result <- vect[vect != value]

上記の[]は、対象のベクトル(vector)から特定の値を全て削除した結果を返します。

もし、複数の値を一緒に削除したい場合は、「%in%」を使います。

まず、ベクトル名と[]を記述します。

[]内で、「%in%」の左辺に対象のベクトル、右辺に削除する複数の値をまとめたベクトルを指定します。

そして、上記の「%in%」の条件式の先頭に「!」をつけます。

#vect=対象のベクトル
#value1, value2, value3, ・・・ =削除する複数の値
result <- vect[! vect %in% c(value1, value1, value3, ・・・)]

上記の[]は、対象のベクトル(vector)から複数の値を全て削除した結果を返します。

使用例

nums <- c(1, 2, 1, 1, 3, 4, 5, 1)

result <- nums[nums != 1]

result
出力:
[1] 2 3 4 5

使用例2

nums <- c(1, 2, 1, 1, 5, 3, 4, 4, 5, 1)

#1, 4, 5を削除
result <- nums[! nums %in% c(1, 4, 5)]

result
出力:
[1] 2 3

まとめ

ベクトル(vector)の要素を削除する方法は、次の2つです。

  • インデックスで削除する方法
    result <- vect[-index]
  • 値で削除する方法
    • result <- vect[vect != value]
    • result <- vect[! vect %in% c(value1, value1, value3, ・・・)]

コメント

タイトルとURLをコピーしました