2016-06-24 4 views
0

住宅(住宅内の機器)から集められたデータに関するプロット(EDA)を作成したいと思います。しかし、私はr積み重なった棒の合計値

データはこのように見てます。..こだわっている:

df$device df$date  df$time df$value 
boiler  2015-01-13 12:15  0.0009 
boiler  2015-01-13 12:30  0.0007 
boiler  2015-01-13 12:45  0.0005 
boiler  2015-01-13 13:00  0.0010 
TV   2015-01-13 12:15  0.0009 
TV   2015-01-13 12:30  0.0007 
TV   2015-01-13 12:45  0.0005 
TV   2015-01-13 13:00  0.0010 
boiler  2015-01-14 12:15  0.0009 
boiler  2015-01-14 12:30  0.0007 
boiler  2015-01-14 12:45  0.0005 
boiler  2015-01-14 13:00  0.0010 
TV   2015-01-14 12:15  0.0009 
TV   2015-01-14 12:30  0.0007 
TV   2015-01-14 12:45  0.0005 
TV   2015-01-14 13:00  0.0010 

データは(9月まで月)8ヶ月に渡って測定されます。で、 Y軸=測定値 X-軸=ヶ月 プロット=すべてのデバイス

私が試した:私は、プロットを作りたい

df$monthnumber <- month(df$Date) 
test <- table(df$Device, df$monthnumber) 

barplot(counts1,col=rainbow(7), xlim = c(1,15), 
     legend = c(rownames(counts1)), bty = "L") 

次の画像にどのようなリード:

結果:enter image description here しかし、それは間違っています。これは、デバイスの測定頻度を含んでいるためです。私はどのように各アプリケーション(合計)毎月合計値を追加することができますか分かりません。

私が試した:

test$value <- aggregate (df$Measurevalue, by = list(genergy$Device), sum) 
をしかし、エラーが与えられました。

Error in $<-.data.frame(tmp, "value", value = list(Group.1 = c("Boiler", :
replacement has 7 rows, data has 285896

は、どのように私はこの問題に取り組むことができますか? - 各デバイスの合計値と積み重ね棒グラフ、(y= energy)と、(X= months

+0

ggplotを使用してプロットを試しましたか? – theArun

+0

はい、しかし、主な問題は値の合計を得ることでした。私のケースでは、データフレームが長すぎる(私は推測する)ので、それは動作しませんでした。しかし、私はそれをどのように修正できるのか分かりません。 –

+0

ので:(バー内)の合計値と と私は(私のテーブルに)で、余分な変数を追加する方法を理解していない - の測定値(y)が と - - 月のnummers(x)の と デバイスあたりの実測値) –

答えて

0

だから、あなたはdplyrggplot

library("dplyr") 
library("ggplot2") 

df <- data.frame(device = c("boiler","boiler","boiler","boiler","TV","TV","TV","TV","boiler","boiler","boiler","boiler","TV","TV","TV","TV"), 
        date = c("2015-01-13","2015-01-13","2015-01-13","2015-01-13","2015-01-13","2015-01-13","2015-01-13","2015-01-13","2015-01-14","2015-01-14","2015-01-14","2015-01-14","2015-01-14","2015-01-14","2015-01-14","2015-01-14"), 
        time = c("12:15","12:30","12:45","13:00","12:15","12:30","12:45","13:00","12:15","12:30","12:45","13:00","12:15","12:30","12:45","13:00"), 
        value = c(0.009,0.007,0.005,0.001,0.009,0.007,0.005,0.001,0.009,0.007,0.005,0.001,0.009,0.007,0.005,0.001) 
        ) 
    df <- mutate(df,device = as.factor(device), 
       date = as.Date.character(date,format = "%Y-%m-%d")) %>% 
     group_by(device) %>% 
     mutate(sum(value)) 

の組み合わせを使用することができ、結果はによって要約です月

0123に基づいてグループのテーブルを - あなたはあなたのコメントで述べたように、日常的 enter image description here

上のデバイスは、あなたが月単位のためにそれを行うには探していました次のようにグラフが見え、私は十分な月次データを持っていない

df<- group_by(df,m=as.factor(month(date)),device) %>% 
summarise(s = sum(value)) 
ggplot(df,aes(x=m,y=s,fill=device)) + geom_bar(stat="identity") 

として、.. enter image description here

更新:データの入力以下27/06/2016 は、次の手順を実行しますコマンド。そして、その月に基づいてデータを要約してみてください。

df <- mutate(df,device = as.factor(device), 
        date = as.POSIXct((strftime(date,format = "%Y-%m-%d")))) %>% 
     group_by(device) 
+0

ありがとうございますが、私のデータには約800,000行が含まれています。したがって、たとえばdevice = c( "boiler" ....)これは自動的に可能ですか? –

+0

本当にありがとう!しかし、あなたの2番目のコードを実行するとき: df < - group_by(df、m =。要約(s = sum(value)) ggplot(df、aes(x = m、y = s、fill = device))+ geom_bar(stat = "identity" 『 - > –

+0

クラス(DFの$日) "日付" –

関連する問題