2014-01-29 105 views
-1

想象一下,您有一個包含2個變量的數據框 - 名稱&年齡。名稱是類別因素和年齡號碼。現在想象一下,現在這個數據框中有成千上萬的人。你如何:R中計數和直方圖圖示

  1. 產生一個表:名稱| COUNT(NAME)爲每個名稱唯一嗎?

  2. 生成一個直方圖,您可以在該直方圖中更改要顯示在直方圖中的最少數量的 。

對於第2部分,我希望能夠測試不同的最小頻率值並查看直方圖是如何出來的。還是有更好的方法務實地確定每個名稱輸入直方圖的最小數量?

謝謝!

編輯:下面是表會是什麼樣子在RDBS:

NAME | COUNT(NAME) 

John | 10 
Bill | 24 
Jane | 12 
Tony | 50 

伊曼紐爾| 1 ...

我想要做的是創建一個函數來繪製直方圖,其中我可以更改一個設置要繪製的最小頻率的值。更有意義?

+0

你嘗試過什麼已經,什麼也沒有工作,以及在什麼地方你想幫助嗎?哦,你有我們可以使用的一些數據嗎?請參閱http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example獲得一些幫助。 –

+0

所以我剛剛找到了'table()'函數,當你傳遞它時,一個名稱數組將自動爲你提供計數。我應該在那裏很好。對於直方圖,我使用'plot(df.counts $ NAME [which(df.counts> 10)]);'但這不起作用。 –

+0

從你提供的內容來看,沒有辦法知道你的'df.counts'是什麼樣的,也不知道'NAME'的外觀。假設你的初始data.frame是'd',並且名字在'name'元素中,試試'plot(as.table(table(d $ name)[table(d $ name)> 10]))' – jbaums

回答

0
> x <- read.table(textConnection(' 
+ Name Age Gender Presents Behaviour 
+ 1 John 9 male  25 naughty 
+ 2  Bill 5 male  20  nice 
+ 3  Jane 4 female  30  nice 
+ 4  Jane 4 female  20  naughty 
+ 5  Tony 4 male  34 naughty' 
+), header=TRUE) 
> 
> table(x$Name) 

Bill Jane John Tony 
    1 2 1 1 
> layout(matrix(1:4, ncol = 2)) 
> plot(table(x$Name), main = "plot method for class \"table\"") 
> barplot(table(x$Name), main = "barplot") 
> tab <- as.numeric(table(x$Name)) 
> names(tab) <- names(table(x$Name)) 
> dotchart(tab, main = "dotchart or dotplot") 
> ## or just this 
> ## dotchart(table(dat)) 
> ## and ignore the warning 
> layout(1) 

enter image description here

+0

這是偉大的prasanna,但我正在尋找一個直方圖(頻率)圖表,我可以自定義最低閾值。例如,如果數據框有1000條記錄/觀察值,所有不同的名稱,我想要一張圖表向我顯示每個名稱出現的次數,並設置最少次數(這種方式我沒有繪製只出現幾次的名字)。合理? –