2016/11/02

2020/05/04

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

R言語入門

ライター:

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

notin_add

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

※R言語入門のトップページはこちら

関数

プログラム

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

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

※R言語入門のトップページはこちら

(totalcount 341 回, dailycount 11回 , overallcount 2,412,166 回)

ライター:

R言語入門

COMMENT

コメントを残す

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




CAPTCHA


  • r-de-r   2016.11.2 8:46 PM

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

  • Take   2016.12.6 1:52 PM

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

  • r-de-r   2016.11.2 8:46 PM

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

  • Take   2016.12.6 1:52 PM

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