eVennパッケージを使ってベン図を描くときのメモ
タイトルの通りですが、つまづいたので備忘録としてメモします。
ブログを初めて最初の技術っぽい記事ですが、あまり時間が取れないので、やや適当です。。
時間が取れたら追記するかも?
Rでベン図を描くためのパッケージには色々ありますが、
・ベン図の中に実際の数値を入れたい
・使用するデータが、各レコードが、
どのグループに属すか(ベン図でいうところの丸)を、01で持っているデータ
・デザインが一番好み
という理由で、eVennパッケージを選びました。
https://cran.r-project.org/web/packages/eVenn/eVenn.pdf
使うにあたり、からだにいいものさんの記事を参考にさせて頂きました。
まずはパッケージをインストールします。
install.packages("eVenn") library("eVenn")
からだにいいものさんが使用しているデータが、ワテクシが使用したデータと似たような感じなので、
そのまま使わせて頂くと、
# サンプルデータ作成 n <- 100 VennData <- data.matrix(data.frame(Data1 = sample(c(0, 1), n, replace = TRUE), Data2 = sample(c(0, 1), n, replace = TRUE), Data3 = sample(c(0, 1), n, replace = TRUE)) # ベン図を描く(今回は3変数) # prop=TRUEにすると、円の大きさが、所属するデータの数で変化したベン図を作成できます。 evenn(matLists = VennData[, 1:3], pathRes = "", prop = TRUE, display = FALSE, CompName="contents_venn2")
すると、以下エラーが出ました。
order(rownames(data_all)) でエラー: 引数 1 がベクトルではありません
「あれ?ワテクシ、order()なんて書いてないぞ?うん?」
ってなって、色々試行錯誤した結果、
使っているmatrixにrownameをつけてやれば解決しました。
# サンプルデータ作成 n <- 100 VennData <- data.matrix(data.frame(Data1 = sample(c(0, 1), n, replace = TRUE), Data2 = sample(c(0, 1), n, replace = TRUE), Data3 = sample(c(0, 1), n, replace = TRUE)) # 行名を付与 rownames(VennData) <- c(1:100) #ベン図を描く(今回は3変数) evenn(matLists = VennData[, 1:3], pathRes = "", prop = TRUE, display = FALSE, CompName="contents_venn2")
無事出ました。
本当にこの解決方法でよかったのかは謎です。。