我已经找到了如何将我的数据筛选成频率表的方法 -
Overall.Cond Freq
235 1 0
236 2 0
237 3 1
238 4 1
239 5 9
240 6 1
241 7 1
242 8 1
243 9 1
我想从这个数据框中绘制一个直方图,但当我执行hist(dataFrameName)时,出现了以下错误。
Error in hist.default(veenker) : 'x' must be numeric
为什么会发生这种情况,如何规避它?
编辑:对于那些建议使用
barplot
作为解决方案的人(这不是问题),请考虑以下示例,说明为什么barplot
不是一个好的解决方案。这个样本数据
dt = data.frame(vals = c(1.1, 1.2, 1.3, 2.0, 3.4, 26, 35, 45),
freq = c( 2, 3, 4, 3, 2, 15, 17, 14))
使用
barplot(dt$freq, names.arg = dt$vals)
将生成这个非常误导性的条形图:
然而,将数据转换为矢量格式会更有意义,使用以下代码:hist(as.vector(rep(dt$val, dt$freq)))
:
hist
接受“原始”数据并为您计算列联表。不需要将数据钻取到频率表中,只需在您想查看的(列的)数据上使用hist
即可。 - Hugh