2016-08-06 7 views
1

フレームと同じ値を比較する二つの異なるdata.frameでggplot2のbarplot 2個のデータIがRでbarplotを作りたかった比較

私のデータは、この

まずDFのようになります。

 2004 2005 2006 unit region 

    1 1500 1000 2000 X region1 
    2 1000 2500 2800 Y region1 
    3 2000 2050 1900 X region2 
    4 2200 2100 2000 Y region2 
etc. 

第二DF:私がやりたいこと

 2004 2005 2006 unit region 

    1 5  10 12 PP region1 
    2 3  5  8 SS region1 
    3 8  12 11 PP region2 
    4 7  5  5 SS region2 
etc. 

はの視覚的な比較は次のとおりです。

  1. Barplot(クラスタ化された) - region1ユニットXは、第2のDFユニットPPから同じリージョン1を持ちます。
  2. 折れ線グラフ上記と同じデータ
  3. Barplot(clustered) - 第2テーブルユニットSSから同じ10個の領域を持つユニットYを持つ10個の領域の集合。年(2004年、2005年、2006年) 私はバープロット(クラスタ化されたバープロット)を持っていたいと思います。

誰でも私を助けることができれば、私は一日中それをやろうとしていて、先に進むことができないと感謝します。

ありがとうございました!

+0

あなたは、少なくとも[再生可能な形式]でデータを共有する必要があります(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible例)。また、あなたが試したことを示して、あなたが立ち往生している場所について具体的に質問してください。あなたのような質問の種類は私たちに今宿題を割り当てています。 ggplotで使いやすくするためには、データをより整理した形式(http://vita.had.co.nz/papers/tidy-data.pdf)にすることから始めてください。 – MrFlick

答えて

1
2004 2005 2006 unit region 
1500 1000 2000 X region1 
1000 2500 2800 Y region1 
2000 2050 1900 X region2 
2200 2100 2000 Y region2 

df1 <- read.table(con <- file("clipboard"), header = T) 

2004 2005 2006 unit region 
5  10 12 PP region1 
3  5  8 SS region1 
8  12 11 PP region2 
7  5  5 SS region2 

df2 <- read.table(con <- file("clipboard"), header = T) 

# Barplot (clustered) - region1 unit X with the same region1 from second DF unit PP. Years (2004, 2005, 2006) 
df1$df <- 1 
df2$df <- 2 

require(reshape2) 
require(ggplot2) 

df <- rbind(df1, df2) 
df <- melt(df, id.vars=c("region", "unit", "df")) 

ggplot(df[(df$region=="region1" & df$df == 1) | (df$region == "region1" & df$unit == "PP"),], 
     aes(variable, value)) + 
    geom_bar(aes(fill = factor(df)), position = "dodge", stat="identity") 


# Line chart the same data as above 
ggplot(df[(df$region=="region1" & df$df == 1) | (df$region == "region1" & df$unit == "PP"),], 
     aes(variable, value)) + 
    geom_line(aes(fill = factor(df)), stat="identity") 

# Barplot (clustered) - a set of 10 regions with unit Y with the same 10 regions from second table unit SS. Years (2004, 2005, 2006) I would like to have a barplot (clustered barplot). 
cat("For this one you'd need to provide a suitable example, as the current example has only 2 regions") 

enter image description here

+1

ありがとう!私にとって完璧に働いた!私はdfを変えなければならないことを知らなかった、今より多くの意味がある! – sampak