2016/11/02
2020/05/04
Rでベクトルにその要素が無いなら追加する関数
今回紹介するのは、Rでベクトルに要素を追加する関数です。Rで普通に要素を追加するのは、簡単ですよね。今回紹介する関数は、特別です。「追加元のベクトルの中身を参照して、追加したい要素がない場合は追加し、追加したい要素が既にある場合は、追加しない」というようなものです。
自作関数で、以下のようなプログラムになります。
※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は既にベクトルの要素に含まれているので、追加されず、
[1] 1 3 7 9 11 13
というように、元のベクトルのままとなります。
※R言語入門のトップページはこちら
COMMENT
-
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)))
}
とかでも動くと思います