2017-02-26 70 views
0

這個問題與另一個類似標題的問題類似,但不相同。因子變量頻率的直方圖(編輯:現在帶有樣本數據!)

我有一個數據框包含一個因子變量。我想繪製直方圖(最好在ggplot2),該直方圖顯示x軸上的整數,以及在y軸上具有x個觀測值的因子的計數。所以我可以看到x1因素有1個觀測值,x2因素有2個觀測值等等。

我一直無法通過這個自己來解釋。任何幫助,將不勝感激。

編輯:我的問題是不同於Make Frequency Histogram for Factor Variables

該問題詢問「每個因子水平中有多少是在我的數據框中?」那就是,多少隻狗,多少隻貓,多少隻鳥。

我在問,「有多少個因子水平有x行?」也就是說,有多少動物有兩排?如果我的數據框中有3只鳥和3只狗,我想要一個直方圖,顯示有2個因子水平有3個觀測值。

編輯2:哼。我想我不是很好地解釋自己。我從Kaggle比賽下載了訓練數據。數據是一套公寓出租房源。數據中的一個字段是building_id。我把building_id字段分解了。我想要繪製:有多少建築物在該集合中有1個列表?有多少建築物有2套房源?等

例子:

listingid buildingid bedrooms bathrooms etc... 
001  001  1  1 
002  001  2  1 
003  001  1  1 
004  001  2  1 
005  002  1  1 
006  002  2  1 
007  002  1  1 
008  003  2  2 
009  003  1  1 
010  004  2  2 
011  004  3  1 
012  005  1  1 
013  006  2  2 
014  007  2  1 
015  008  1  1 
016  009  1  1  

我想會顯示情節:

  5| X 
num  4| X 
bldgs.  3| X 
      2| X X 
      1| X X X X 
      +-------------------------------- 
num listings: 1 2 3 4 

該圖顯示,一個建築(建築物001)有4個列表,一個建築物(建築002)有3個房源,兩個建築物(003和004)有2個房源,5個建築物(005,006,007,008,00)有一個房源。

+2

沒有樣本數據你的問題不太可能得到很好的答案,分享你的數據框的前幾行,也分享你到目前爲止嘗試過的東西 –

+0

另外,如果你發現了另一個類似標題的問題,這個問題。 :) – Therkel

+0

的可能的複製[做出因子變量頻數直方圖(http://stackoverflow.com/questions/21639392/make-frequency-histogram-for-factor-variables) – Therkel

回答

0

要得到一個因子的等級數,我們可以使用length(levels(myfactor))。爲了做到這一點,我們需要知道data.frame中的哪些變量是因素。我們用which(is.factor(myvariable))進行這種檢查。 矢量化這兩個命令,然後做他們的barplot。

myfactors <- which(sapply(mydata,is.factor)) 
factorlengths <- sapply(myfactors,function(i) length(levels(mydata[[i]]))) 

barplot(factorlengths) 

在ggplot2我會做類似下面的事情。

mydata2 <- data.frame(x = names(factorlengths), y = factorlengths) 

ggplot(mydata2,aes(x = x, y = y)) + geom_bar(stat="identity") 

這是你想要的嗎?如果不是,請澄清您的問題with example data

純粹的語義,但要繪製的是不是一個直方圖