【发布时间】:2012-10-23 17:15:28
【问题描述】:
我想在一页上使用直方图绘制 data.frame 的每一列。这是一个使用 R 附带的示例“钻石”数据集的示例:
p = list()
for (i in 1:ncol(diamonds)) p[[i]] <- qplot(diamonds[,i], xlab=names(diamonds)[[i]])
do.call(grid.arrange, p)
这确实绘制了所有列,但每一列的数据看起来都一样。所以,显然有问题。
这是完成这项任务的正确方法吗?我确定我在某处有一些愚蠢的语法,将相同的列数据集分配给列表中的每个元素,但我不确定它是什么。
谢谢
【问题讨论】:
-
切工、颜色和净度不是数值变量,它们是因素。应该如何绘制它们(因为直方图在这种情况下毫无意义)?
-
我会支持 joran 所说的,但如果你可以忽略这样的事情,你想
melt数据(reshape2包)然后用facet_wrap绘图/跨度> -
统计每个类别的项目可能仍然有意义,但这只是一个示例。我完全可以以某种方式删除这些列。
-
在这种情况下,只要听从@Justin 的建议(也许他甚至会把它写下来作为答案......)
-
不确定如何为此使用 melt 和 facet_wrap。融化似乎允许人们从 data.frame 中选择列,但是我不确定如何使用 facet_wrap 来绘制它们。