Rで解析:オブジェクトの内容やベクトルでの位置を確認するコマンドのまとめ


Rを使用していると、ifコマンドを利用して「オブジェクトの内容で処理を変えたり」、文字列や数列などで「ある文字(数字)がどこの位置に存在するか」などの情報を取得する必要が出てきます。これら操作に必要なコマンドをまとめてみました。

新たにパッケージを導入する必要はありません。
コマンドはR version 3.2.0で確認しています。

実行コマンドの紹介

#データ例
a <- c(1, 4, 4, 6)
b <- c(3, 4, 6, 7)

#一致の確認
a == b
[1] FALSE  TRUE FALSE FALSE

#ベクトルの長さが異なる場合
#エラーが出ます
c <- c(1, 5, 4, 6, 9)
a == c
[1]  TRUE FALSE  TRUE  TRUE FALSE
Warning message:
In a == c :
長いオブジェクトの長さが短いオブジェクトの長さの倍数になっていません 

#一致の確認に"=="を使用するとベクトルで表示されるので
#if文での使用では工夫が必要な場合があります
#そこで、オススメの一致確認方法
#identical(all.equal(比較A, 比較B), TRUE)
identical(all.equal(a, b), TRUE)
[1] FALSE

#%in%を使用
#意味:aはcに含まれているか
a %in% c
[1] TRUE TRUE TRUE TRUE

#不一致の確認
a != b
[1]  TRUE FALSE  TRUE  TRUE

#aはbより大きいかの確認
a > b
[1] FALSE FALSE FALSE FALSE

#aはb以上かの確認
a >= b
[1] FALSE  TRUE FALSE FALSE

#aはbより小さいかの確認
a < b
[1]  TRUE FALSE  TRUE  TRUE

#aはb未満かの確認
a <= b
[1] TRUE TRUE TRUE TRUE

#aとbの理論和
a | b
[1] TRUE TRUE TRUE TRUE

#aとbの理論積
a & b
[1] TRUE TRUE TRUE TRUE

#オブジェクトの完全一致確認
identical(a, b)
[1] FALSE

#注意:完全一致なので型も確認されます
#例えば整数型と倍精度少数ではFALSEとなります
identical(as.integer(10), 10.0)
[1] FALSE

#でもidentical(10, 10.0)と実行すると
identical(10, 10.0)
[1] TRUE

#条件を満たすベクトルの位置を取得
#whichコマンド
#例えば3の倍数
which(a%%3 == 0)
[1] 4

#位置ではなく要素を取り出す場合
a[which(a%%3 == 0)]
[1] 6

少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク