データフレームの列をループして、ggplot2でプロットを作成します

FcmC

私はこれを克服しようとしています。これ以上取得できません。

因子変数と数値変数を持つデータフレームがあります。これにより、最初の数行と列が表示されます。

# A tibble: 6 x 5
  cluster SEV_D SEV_M   OBS   PAN  
    <int> <dbl> <dbl> <fct> <fct>  
1       1     5     1    0     1    
2       2     6     1    0     0    
3       1     5     1    0     1    
4       2     4     2    0     0    
5       1     4     1    1     1    
6       1     4     2    1     0   

cluster=as.factor(c(1,2,1,2,1,1))  
SEV_D=as.numeric(c(5,6,5,4,4,4))
SEV_M=as.numeric(c(1,1,1,2,1,2))
OBS=as.factor(c(0,0,0,0,1,1))
PAN=as.factor(c(1,0,1,0,1,0))
data<-data.frame(cluster,SEV_D,SEV_M,OBS,PAN) 

このようにデータフレームを数値変数と因子変数に分割し、グループ化に必要なため、両方のサブセットで「クラスター」を維持します。

data_fact <- data[, sapply(data, class) == 'factor']

data_cont <- data[, sapply(data, class) == 'numeric' | names(data) 
== "cluster"]

次の2つのコードスニペットは、必要なプロットを生成します。

data_fact %>% group_by(cluster,OBS)%>%summarise(total.count=n()) %>% 
ggplot(., aes(x=cluster, y=total.count, fill=OBS)) + 
geom_bar(position = 'dodge', stat='identity') + 
geom_text(aes(label=total.count),  
position=position_dodge(width=0.9), vjust=-0.2)

data_cont %>% group_by(cluster) %>% dplyr::summarise(mean = 
mean(SEV_D), sd = sd(SEV_D)) %>% 
ggplot(.,aes(x=cluster,y=mean))+geom_bar(position=position_dodge(), 
stat="identity",colour="black",size=.3)+geom_errorbar(aes(ymin=mean- 
sd, ymax=mean+sd),size=.3,width=.4,position=position_dodge(.4)) + 
ggtitle("SEV_D")

私の目標は、データフレーム内の変数と同じ数のグラフを作成し、列をループして、そのようなグラフを1つのシートに格納することです。

私の試みは

col<-names(data_fact)[!names(data_fact)%in%"cluster"]

for(i in col) {
data_fact %>% group_by(cluster,i)%>%summarise(total.count=n()) %>% 
ggplot(., aes(x=cluster, y=total.count, fill=i)) + geom_bar(position 
= 'dodge', stat='identity') + geom_text(aes(label=total.count), 
position=position_dodge(width=0.9), vjust=-0.2)
}

しかし、それはこのエラーをスローします:

grouped_df_impl(data、unname(vars)、drop)のエラー:列iが不明です

その上、そのコードではすべてのグラフが1枚のシートに表示されるわけではありません。どんな助けでも大歓迎です!!!

Dave2e

上記のリンクは良いリファレンスです。または、Rstudioのtidyevalチートシートを参照してください:https//github.com/rstudio/cheatsheets/raw/master/tidyeval.pdf

iggplotステートメントで評価するには、!!ensym( )関数構文を使用して文字列の引用符を外す必要がありますまた、printステートメントを使用して、ループ内のプロットを出力する必要があります。

library(ggplot2)

col<-names(data_fact)[!names(data_fact)%in%"cluster"]

for(i in col) {
   print(i)

   g<-data_fact %>% group_by(cluster, !!ensym(i)) %>% summarise(total.count=n()) %>% 
     ggplot(., aes(x=cluster, y=total.count, fill=!!ensym(i))) + 
     geom_bar(position  = 'dodge', stat='identity') + 
     geom_text(aes(label=total.count), position = position_dodge(width=0.9), vjust=-0.2) +
     labs(title=i)
  print(g)
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ループを使用してプロット[ggplot2]を作成する:エラー `data`はデータフレームである必要があります

分類Dev

ggplot2でforループを使用して、データフレーム内に複数のグラフをプロットする

分類Dev

2つの同一のデータフレームの列をループしてプロットします

分類Dev

データフレームのリストをggplot2にプロットします

分類Dev

ggplot2を使用して、スタックされたバープロットのデータフレームの順序を管理します

分類Dev

Pythonで2列のデータフレームをグループ化してプロットする方法

分類Dev

新しいデータフレームを作成せずに、Rのggplot2を使用して、異なるデータフレームからの2つの系列を互いにプロットするにはどうすればよいですか?

分類Dev

ggplot2を使用して2つのデータフレームから単一のプロットを作成する方法

分類Dev

ggplot2を使用してプロットするための関数を作成し、関数にデータフレーム、x、およびyを提供します。軸を正しい方法で参照するにはどうすればよいですか?

分類Dev

ループを使用してRのggplot2を使用し、同じプロット内の同じデータフレームから複数のxyプロットを生成し、対応する凡例を表示します

分類Dev

ggplot2は、グループ化されたデータフレームから最後の変数のみをプロットします

分類Dev

R ggplot2:線の長さが異なる複数のROCプロットのデータフレームを作成します

分類Dev

sapplyとggplot2を使用して、データフレームの各列に対してこのプロットを作成するにはどうすればよいですか?

分類Dev

ルックアップデータフレームを使用して、プログラムでデータフレーム列の名前を変更します

分類Dev

ggplot2:パーツデータで選択したファセットを使用してプロットを作成します

分類Dev

ggplot2を使用して、指定されたx値でデータフレームの行ごとに線をプロットする

分類Dev

dataframe2delta:ggplot2を使用してデータフレームから直接デルタ関数をプロットする方法

分類Dev

2つのデータフレームからプロットを作成するときに、ggplotの凡例を手動で作成します

分類Dev

ggplotを使用してデータフレームのすべての行をプロットします

分類Dev

ggplot2でバープロットのフレームを制限します

分類Dev

データフレームをループして、同じテストセットで評価される各列のモデルを作成します

分類Dev

ggplotでapply関数を使用して、データフレーム列のサブセットをプロットします

分類Dev

データフレームをループしてRでプロットを作成する

分類Dev

データフレームからforループを使用して複数のプロットを作成する

分類Dev

2つのデータフレームでgeom_tileプロットを作成します

分類Dev

データフレームのリストをループして、Rでグラフを作成します

分類Dev

データフレームのリストをループして、Rでグラフを作成します

分類Dev

データフレーム列からタイムスタンプを作成し、プロットのxaxisとして使用します

分類Dev

データフレーム列のリストをループしてサブプロットの自動セットを作成する方法

Related 関連記事

  1. 1

    ループを使用してプロット[ggplot2]を作成する:エラー `data`はデータフレームである必要があります

  2. 2

    ggplot2でforループを使用して、データフレーム内に複数のグラフをプロットする

  3. 3

    2つの同一のデータフレームの列をループしてプロットします

  4. 4

    データフレームのリストをggplot2にプロットします

  5. 5

    ggplot2を使用して、スタックされたバープロットのデータフレームの順序を管理します

  6. 6

    Pythonで2列のデータフレームをグループ化してプロットする方法

  7. 7

    新しいデータフレームを作成せずに、Rのggplot2を使用して、異なるデータフレームからの2つの系列を互いにプロットするにはどうすればよいですか?

  8. 8

    ggplot2を使用して2つのデータフレームから単一のプロットを作成する方法

  9. 9

    ggplot2を使用してプロットするための関数を作成し、関数にデータフレーム、x、およびyを提供します。軸を正しい方法で参照するにはどうすればよいですか?

  10. 10

    ループを使用してRのggplot2を使用し、同じプロット内の同じデータフレームから複数のxyプロットを生成し、対応する凡例を表示します

  11. 11

    ggplot2は、グループ化されたデータフレームから最後の変数のみをプロットします

  12. 12

    R ggplot2:線の長さが異なる複数のROCプロットのデータフレームを作成します

  13. 13

    sapplyとggplot2を使用して、データフレームの各列に対してこのプロットを作成するにはどうすればよいですか?

  14. 14

    ルックアップデータフレームを使用して、プログラムでデータフレーム列の名前を変更します

  15. 15

    ggplot2:パーツデータで選択したファセットを使用してプロットを作成します

  16. 16

    ggplot2を使用して、指定されたx値でデータフレームの行ごとに線をプロットする

  17. 17

    dataframe2delta:ggplot2を使用してデータフレームから直接デルタ関数をプロットする方法

  18. 18

    2つのデータフレームからプロットを作成するときに、ggplotの凡例を手動で作成します

  19. 19

    ggplotを使用してデータフレームのすべての行をプロットします

  20. 20

    ggplot2でバープロットのフレームを制限します

  21. 21

    データフレームをループして、同じテストセットで評価される各列のモデルを作成します

  22. 22

    ggplotでapply関数を使用して、データフレーム列のサブセットをプロットします

  23. 23

    データフレームをループしてRでプロットを作成する

  24. 24

    データフレームからforループを使用して複数のプロットを作成する

  25. 25

    2つのデータフレームでgeom_tileプロットを作成します

  26. 26

    データフレームのリストをループして、Rでグラフを作成します

  27. 27

    データフレームのリストをループして、Rでグラフを作成します

  28. 28

    データフレーム列からタイムスタンプを作成し、プロットのxaxisとして使用します

  29. 29

    データフレーム列のリストをループしてサブプロットの自動セットを作成する方法

ホットタグ

アーカイブ