2016-09-13 5 views
0

私は異なるカテゴリのデータセットを持っています。ggplot2バイオリンに2つのカテゴリをプロットするR

V1列がNAではありませんカテゴリ

をしている:ここ

は、データ・セットが

 V1 V2 V3 
    1 NA 1 0.1 
    2 2 2 0.2 
    3 3 NA 0.1 
    4 4 4 0.3 
    5 NA NA 0.4 
    6 NA NA 0.8 
    7 7 7 0.2 
    8 NA 8 0.1 
    9 9 NA 0.6 
    10 NA NA 0.1 

ような行がどのように見えるかであるA、B、CとDの

を言ってみましょうV2列がNAでない場合カテゴリB

(V1列はNA または V2列はNAではありません)カテゴリCにあります

このデータフレームのすべての行は、上記の例の場合、カテゴリD

である:(3行目のように)、同時にAおよびCに分類される行があります。 1行目はカテゴリBとCになります。したがって、カテゴリCの数はA + Bの数より少なくなることがあります。すべての10行がカテゴリDにあります。

V3の値に従って、カテゴリーA、B、C、Dのバイオリンプロットを一緒にプロットすることができます。 (X軸はA B C D、Y軸はV3)

誰もがヒントを得ていますか?私は試みましたが、ggplot2は重複したカテゴリを扱うことができないようです。データが別の列にはカテゴリを指定している場合は、それが正常に動作します:

 V1 V2 V3 Group 
    1 NA 1 0.1  B 
    2 2 2 0.2  C 
    3 3 NA 0.1  A 
    4 4 4 0.3  C 
    5 NA NA 0.4  D 
    6 NA NA 0.8  D 
    7 7 7 0.2  C 
    8 NA 8 0.1  B 
    9 9 NA 0.6  A 
    10 NA NA 0.1  D 

4バイオリンがありますが、それぞれのバイオリンにのみ、そのカテゴリ内の唯一のエントリがあります。重なったものは考慮されません。

ggplot2に重複カテゴリをプロットする方法はありますか?あるいは、異なるデータフレームの異なるカテゴリを1つのバイオリンプロットにプロットする方法がありますか?または、元のデータセットの4つのサブセットをプロットし、4つのバイオリンプロットを結合することを提案しますか?

ありがとうございます!

+0

これはむしろ[datascience.se]に属します。 – phk

+0

カテゴリ列を追加する 'awk'などのプロセッサを介してデータをパイプします。どうやらあなたは結果をプロットすることができます。 'awk -f awkscript datafile | ggplot-'が機能する可能性があります – roaima

+0

はいグループ列を追加できます。しかし問題は、カテゴリCがA/Bと重複している可能性があることです。 ggplot2バイオリンプロットを使用してカテゴリAとカテゴリーCにアイテムを表示する方法を見つけることができません。 –

答えて

0

あなたが望むカテゴリを作ることはかなり簡単です。

データ:

dd <- read.table(text=" 
    NA 1 0.1 
    2 2 0.2 
    3 NA 0.1 
    4 4 0.3 
    NA NA 0.4 
    NA NA 0.8 
    7 7 0.2 
    NA 8 0.1 
    9 NA 0.6 
    NA NA 0.1") 

変容:

dd$Group <- with(dd, 
    ifelse(is.na(V1) & is.na(V2),"D", 
     ifelse(!is.na(V1) & !is.na(V2),"C", 
       ifelse(is.na(V1),"B","A")))) 
+0

こんにちはベン、返信ありがとう!あなたのコードでは、カテゴリーCは、V1とV2の両方がNAでないラインであると考えていますか?しかし、カテゴリCを(V1!= "NA" ** OR ** V2!= "NA")にします。つまり、カテゴリCとA/Bと重複する可能性があります。 –

関連する問題