【发布时间】:2014-03-14 00:40:20
【问题描述】:
所以我想出了如何将我的数据向下钻取到频率表 -
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。 -
没有更多关于这个话题的讨论是相当令人惊讶的。对于非常大的频率表,在尝试将频率表转换为向量时,很容易耗尽物理内存。想象一下,绘制大约 Avogadro 数的 5 个样本。
标签: r