読者です 読者をやめる 読者になる 読者になる

疫学と医療統計学と遺伝学と時々、大学院生活

疫学を専門とする大学院生の研究に関する備忘録的ページ。

R 2つのリストを比較する関数(intersect、setdiff)の紹介

今日はリストを比較する時に役にたつコマンドを紹介します。
これらは膨大なリストを扱う際に、「共通のものを抽出する」「片方に特有のものを抽出する」などに非常に役に立ちます。

早速、実践

下記のようにAとBのリストが与えられているとする。

#AとBそれぞれ4つと3つのSNPのリストがあるとする。
A <- c("rs1", "rs2", "rs3", "rs4")
B <- c("rs2", "rs4", "rs5")
両方にふくまれている文字列を抽出する(Aにもあって、Bにもある)
Int <- intersect(A, B)
Int
# "rs2" "rs4"
Aのみにふくまれている文字列を抽出する(Aにあって、Bにない)
difA <- setdiff(A, B)
difA
# [1] "rs1" "rs3"
Bのみにふくまれている文字列を抽出する(Bにあって、Aにない)
difB <- setdiff(B, A)
difB
# [1] "rs5"

以上

20160927
RF