2012-01-09 11 views
1

私は列からなるデータフレームを持っています。 "name"、 "time"、 "count"。指定された時間が経過したアイテムの数を示します。私は名前と時間によって時間のヒストグラムを作成できるようにしたいと思います。このことからRのヒストグラムを展開する

 
+------+------+-------+ 
| name | time | count | 
+------+------+-------+ 
| foo | 5 |  5 | 
| foo | 10 |  8 | 
| foo | 15 |  6 | 
| foo | 20 |  8 | 
| bar | 5 |  7 | 
| bar | 10 |  4 | 
| bar | 15 |  9 | 
| bar | 20 | 10 | 
+------+------+-------+ 

(境界線などを選ぶ)(及びHISTを持っている)カウントに基づいてヒストグラムを描くことができるようにしたいと思います全面的にしかし、hist()は行自体をカウントアップしていますが、すでにカウント・カラムにカウントされています。どうすればこれを達成できますか?

答えて

3

ヒストグラムの代わりに棒グラフを使用するのが最も簡単です。

library(lattice) 
barchart(count ~ time | name, data=d) 

library(ggplot2) 
ggplot(d, aes(x=time, y=count)) + 
    geom_bar(stat="identity") + 
    facet_grid(~ name) 
0

あなたは...データを再生成し、それぞれの値をcount回繰り返してヒストグラムを作ることができ

d <- structure(list(V1 = c("foo", "foo", "foo", "foo", "bar", "bar", 
"bar", "bar"), V2 = c(5L, 10L, 15L, 20L, 5L, 10L, 15L, 20L), 
    V3 = c(5L, 8L, 6L, 8L, 7L, 4L, 9L, 10L)), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -8L)) 


hist(as.numeric(unlist(apply(d,1,function(x){rep(x[2],time=x[3])})))) 
関連する問題