2016-10-10 5 views
0

私は以下のデータフレームを持っています。変数は10種類の映画のジャンルカテゴリです。ドラマ、コメディなどR:平均値vs.月間の複数のバープロット

> head(grossGenreMonthLong) 
     Gross ReleasedMonth variable value 
5 33508485    2 drama  1 
6 67192859    2 drama  1 
8  37865    4 drama  1 
9 76665507    1 drama  1 
10 221594911    2 drama  1 
12 446438    2 drama  1 

再現データフレーム:私は10曲のジャンルごとに平均総対月計算し、ファセットを使用して別の棒グラフでそれらをプロットしたい

dput(head(grossGenreMonthLong)) 
structure(list(Gross = c(33508485, 67192859, 37865, 76665507, 
221594911, 446438), ReleasedMonth = c(2, 2, 4, 1, 2, 2), variable = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("drama", "comedy", "short", "romance", 
"action", "crime", "thriller", "documentary", "adventure", "animation" 
), class = "factor"), value = c(1, 1, 1, 1, 1, 1)), .Names = c("Gross", 
"ReleasedMonth", "variable", "value"), row.names = c(5L, 6L, 
8L, 9L, 10L, 12L), class = "data.frame") 

は(変化ジャンル別)。

言い換えれば、10のジャンルのそれぞれについての平均グロス対10バーチャートをプロットする簡単な方法は何ですか?

+2

まあ、私はあなたが 'genre'変数を持つデータから始めると思います。再現可能な質問をする方法を学ぶ必要があります:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+1

'dput()'を使ってデータを共有する –

答えて

1

私たちがあなたを助けてくれるように、reproducible exampleを提供する必要があります。 dput(my.dataframe)はこれを行う方法の1つです。また、以下のようなサンプルデータフレームを生成することもできます。あなたは私たちに再現可能な例を与えていないので、私はテレパシーの帽子をかぶって、あなたのスクリーンショットの「可変」列がジャンルであると仮定します。

n = 100 
movies <- data.frame(
    genre=sample(letters[1:10], n, replace=T), 
    gross=runif(n, min=1, max=1e7), 
    month=sample(12, n, replace=T) 
) 
head(movies) 
# genre  gross month 
# 1  e 5545765.4  1 
# 2  f 3240897.3  3 
# 3  f 1438741.9  5 
# 4  h 9101261.0  6 
# 5  h 926170.8  7 
# 6  f 2750921.9  1 

(私のジャンルは「a」、「b」などです)。

月平均グロスのプロットを作成するには、1か月あたりの平均グロスを計算する必要があります。そうするためのこのような方法の1つは(、... data.tabledplyrもある)

library(plyr) 
monthly.avg.gross <- ddply(movies,   # the input dataframe 
          .(genre, month), # group by these 
          summarize, avgGross=mean(gross)) # do this. 

データフレームplyrパッケージを使用しているmonthly.avg.gross今持っている列avgGrossと(月、ジャンル)ごとに1行(月、ジャンル)における平均総収入。

これはプロットの問題です。あなたは "ファセット"を暗示していますので、ggplotを使用していると仮定します。

library(ggplot2) 
ggplot(monthly.avg.gross, aes(x=month, y=avgGross)) + 
     geom_point() + 
     facet_wrap(~ genre) 

月ラベルを追加して月をここのように数字ではなく因子として扱うことはできますが、それはあなたの質問の周辺です。

0

大変ありがとうございました。適切な棒グラフを作成するために答えを適応させることができました。

関連する問題