2014-07-06 57 views
4

剛剛好轉R和我有以下問題:R- hist.default, 'X' 必須是數字

說我有以下data.frame:

v1  v2  v3 
3  16  a 
44  457 d 
5  23  d 
34  122 c 
12  222 a 

...和等等

我想爲R創建一個直方圖或條形圖,但不是讓x軸成爲數字值之一,我想用v3來計數。 (2a,1c,2d ...等)

如果我做hist(dataFrame$v3),我得到的錯誤'x 'must be numeric

  1. 爲什麼它不能計算每個不同字符串的實例,就像它可以用於其他列一樣?
  2. 這將是最簡單的代碼是什麼?

回答

7

好的。首先,你應該確切知道histogram是什麼。這不是一個計數陰謀。它是一個可視化變量,用於估計潛在的概率密度函數。所以不要嘗試在分類數據上使用hist。 (這就是爲什麼hist告訴你,你通過的值必須是數字。)

如果你只是想離散值的計數,那只是一個基本的棒圖。您可以使用table計算離散數據中R值的計數,然後使用基本命令barplot()對其進行繪圖。

barplot(table(dataFrame$v3)) 

如果你想需要觀察的最少數量,儘量

tbl<-table(dataFrame$v3) 
atleast <- function(i) {function(x) x>=i} 
barplot(Filter(atleast(10), tbl)) 
+0

謝謝。我是一個完整的新手。現在我創建了這個條形圖,我發現在數百個和幾個只有1或2的結果中有很多結果。如果數據不滿足最小數量的實例,是否有排除數據的方法? – Charistine

+0

@ user3594525我在答案中添加了一個可能的解決方案。 – MrFlick

相關問題