Rでベクトルにその要素が無いなら追加する関数

[公開日]2016/11/02[更新日]2017/04/06 [カテゴリー]R言語入門 Written by  IMIN

今回紹介するのは、Rでベクトルに要素を追加する関数です。Rで普通に要素を追加するのは、簡単ですよね。今回紹介する関数は、特別です。「追加元のベクトルの中身を参照して、追加したい要素がない場合は追加し、追加したい要素が既にある場合は、追加しない」というようなものです。

notin_add

自作関数で、以下のようなプログラムになります。

 
 

関数

プログラム

notin_add <- function(data,ad_data)
{
       if(any(data == ad_data) == FALSE)
      {
              data = c(data,ad_data)
      }

       return(data)
}

使い方

自作関数なので、まずはRに先ほどのプログラムを読み込ませましょう。

関数は

プログラム

notin_add(追加元のベクトル,ベクトルに追加したい要素)

として使います。では、実際に使用例を見ていきましょう。

使い方説明のために、aという数字をいくつか格納したベクトルを作成します。

プログラム

a <- c(1,3,7,9,11,13)

このベクトルに5や17を追加するには、

プログラム
notin_add(a,5)
[1] 1 3 7 9 11 13 5

notin_add(a,17)
[1] 1 3 7 9 11 13 17

と記述することで、出来ます。

そして、例えば3を追加しようした場合、3は既にベクトルの要素に含まれているので、追加されず、

プログラム
notin_add(a,3)
[1] 1 3 7 9 11 13

というように、元のベクトルのままとなります。

  • スポンサーリンク

  • 2 件のコメント

    • r-de-r より:

      notin_add2 <- function(data,ad_data) {
      c(data, ifelse(ad_data %in% data, "", ad_data))
      }
      でもよいですね

    • Take より:

      notin_add3 <- function(data,ad_data){
      return(unique(c(data,ad_data)))
      }
      とかでも動くと思います

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA