探索新数据集:可视化许多(所有)变量的最简单,最快捷的方法是什么?
理想情况下,输出显示彼此相邻的直方图,且杂乱和最大信息最少。这个问题的关键是处理大型和不同数据集的灵活性和稳定性。我正在使用RStudio,通常会处理大量杂乱的调查数据。
Hmisc
框中的一个例子,在这里效果很好:
library(ggplot2)
str(mpg)
library(Hmisc)
hist.data.frame(mpg)
不幸的是,在其他地方我遇到了数据标签的问题(plot.new()中的错误:数字边距太大)。它还崩溃了一个比mpg
更大的数据集,我还没弄明白如何控制分箱。而且,我更喜欢ggplot2
中的灵活解决方案。请注意,我刚开始学习R并习惯了商业软件提供的舒适解决方案。
有关此主题的更多问题:
R histogram - too many variables
...
答案 0 :(得分:9)
可能有三种广泛的方法:
hist.data.frame()
<强>包强>
其他可能有用的命令:
library(plyr)
library(psych)
multi.hist(mpg) #error, not numeric
multi.hist(mpg[,sapply(mpg, is.numeric)])
来自multhist
的{p>或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轴上的标签也不太理想。)
这里没有完美的解决方案,也没有一刀切的命令。但也许我们可以更接近于轻松探索新的数据集。