8

探索新数据集:可视化许多(所有)变量的最简单、最快捷的方法是什么?

理想情况下,输出显示彼此相邻的直方图,具有最小的混乱和最大的信息。这个问题的关键是处理大型和不同数据集的灵活性和稳定性。我正在使用 RStudio,通常处理大量杂乱的调查数据。

一个开箱即用Hmisc且效果很好的示例是:

library(ggplot2)
str(mpg)

library(Hmisc)
hist.data.frame(mpg)

不幸的是,在其他地方我遇到了数据标签的问题(plot.new() 中的错误:数字边距太大)。对于更大的数据集,它也崩溃了mpg,我还没有弄清楚如何控制分箱。此外,我更喜欢ggplot2. 请注意,我刚刚开始学习 R,并且已经习惯了商业软件提供的舒适解决方案。

关于这个主题的更多问题:

R 直方图 - 变量太多

...?

4

1 回答 1

12

可能有三种广泛的方法:

  1. 来自软件包的命令,例如hist.data.frame()
  2. 循环变量或类似的宏结构
  3. 堆叠变量和使用构面

套餐

其他可能有用的可用命令:

library(plyr)
library(psych)
multi.hist(mpg) #error, not numeric
multi.hist(mpg[,sapply(mpg, is.numeric)])

或者可能multhist来自plotrix,我还没有探索过。它们都没有提供我一直在寻找的灵活性。

循环

作为 R 初学者,每个人都建议我远离循环。所以我做到了,但也许在这里值得一试。任何建议都非常受欢迎。也许您可以评论如何将图形组合到一个文件中。

堆叠

我的第一个怀疑是堆叠变量可能会失控。但是,对于一组合理的变量,这可能是最佳策略。

我想出的一个例子使用了这个melt函数。

library(reshape2)
mpgid <- mutate(mpg, id=as.numeric(rownames(mpg)))
mpgstack <- melt(mpgid, id="id")
pp <- qplot(value, data=mpgstack) + facet_wrap(~variable, scales="free")
# pp + stat_bin(geom="text", aes(label=..count.., vjust=-1))
ggsave("mpg-histograms.pdf", pp, scale=2)

(如您所见,我尝试在条形上放置值标签以获得更多信息密度,但效果不佳。x 轴上的标签也不太理想。)

这里没有完美的解决方案,也不会有一刀切的命令。但也许我们可以更轻松地探索新的数据集。

于 2012-06-27T14:01:27.133 回答