刚拿起R,我有以下问题:
说我有以下data.frame:
v1 v2 v3
3 16 a
44 457 d
5 23 d
34 122 c
12 222 a
......等等
我想在R中为此创建直方图或条形图,但不是让x轴成为数值之一,而是希望按v3计算。 (2 a,1 c,2 d ......等)
如果我hist(dataFrame$v3)
,我会收到错误'x 'must be numeric
。
答案 0 :(得分:9)
行。首先,您应该确切地知道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))