首页 文章

情节列w.r.t.矩阵中的行

提问于
浏览
0

我有一个矩阵 mat 如下:

V1    V2  
Helsinki   Bus  
Helsinki   Bus  
Helsinki  Tram  
  London Train  
  London   Bus  
  London Train  
...

我想要的是制表(使用R),如下所示:

V1    V2   V3  
Helsinki   Bus    2  
Helsinki  Tram    1  
  London   Bus    1  
  London Train    2

然后绘制条形图(使用R),我的y轴为V2列,使得它们与V1的颜色不同 .
例如,对于赫尔辛基和伦敦,总线需要以不同的阴影显示两次阴影(不聚集在一起) .

那么,我该如何做呢?

编辑:

我确实完成了制表,但是在使用ggplot绘图时 . 如果我这样做:

ggplot( data=mat, aes(x=V2, y=V3, fill=factor(V1)) )+
   geom_bar(position="dodge",stat="identity", width=0.5) + coord_flip() + theme_minimal( base_size= 18 ) + ylab( "Mode of Transport" ) + xlab( "Frequency" ) + labs( fill= "City") + ggtitle( "Distribution of transportation modes" ) + scale_y_continuous(limits = c(0, 15))

我得到了一个聚集的条形图 . 我应该怎样做才能获得所有城市 (V1) 中提到的 V2 中的变量?

1 回答

  • 0

    dplyr包中的group_by函数可能很有用

    library(tidyverse)
    
    group_by(df,V1,V2) %>%
      summarise(V3=n())
    

    如果我理解你的话,你想要一个条形图,其中包含为每个城市聚集的运输方法(这是正确的吗?) . 如果是这样,您只需更改ggplot代码中的aes()变量即可 .

    aes(x=V1,y=V3,fill=V2)
    

相关问题