2014-07-17 104 views
1

我有一些數據。例如有兩列。第一列數據是連續的。第二列值是二進制值(t | f)。我想用R語言在條形圖中繪製它。在第一列中,我想將這些數字歸類爲0-100,101-200 ......等類別,然後我想在y軸上繪製t的數量。我在R中使用了ggplot2,但是我不清楚如何將這些x軸數據分組。在R中繪製條形圖

1 123   t 
2 145   t 
3 222   t 
4 345   f 
5 455   t 
6 567   t 
7 245   t 
8 300   t 
9 150   t 
10 600   t 
11 333   t 
+0

您可以「剪切」數據以創建分組標籤。這將是一個你可以用'aggregate()'做計數的因素。 –

+0

我試過直方圖。但是我需要條形圖查看每個區間有多少t。我對繪圖編碼很好。我需要知道如何將這個x軸數據分成0-100,101-200等類別。 – Burusothman

回答

3

首先,這裏是你的樣本數據中data.frame

dd<-structure(list(V1 = 1:11, V2 = c(123L, 145L, 222L, 345L, 455L, 
567L, 245L, 300L, 150L, 600L, 333L), V3 = structure(c(2L, 2L, 
2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), 
.Label = c("f", "t"), class = "factor")), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -11L)) 

下面是繪製

ggplot(dd, aes(x=cut(V2, breaks=c(0,1:9*100)), weight=as.numeric(V3=="t"))) + 
    geom_bar(stat="bin") + xlab("value") 

的策略,我們在aes()定義xweights。我們使用cut()將數字分解成範圍。然後,我們使用weights將每個值轉換爲一個零/一個值,這些值將在分箱中加在一起。

+1

+1,巧妙運用'weight' –