gpt4 book ai didi

r - 如何在 R 中以最小的努力为数据集中的所有变量创建直方图?

转载 作者:行者123 更新时间:2023-12-04 06:43:11 25 4
gpt4 key购买 nike

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

理想情况下,输出显示彼此相邻的直方图,其中包含最少的困惑和最多的信息。这个问题的关键是处理大型和不同数据集的灵活性和稳定性。我正在使用 RStudio,通常处理大而杂乱的调查数据。

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

library(ggplot2)
str(mpg)

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

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

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

R histogram - too many variables

……?

最佳答案

可能存在三种广泛的方法:

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

  • 套餐

    其他可能有用的可用命令:
    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 轴上的标签也不太理想。)

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

    关于r - 如何在 R 中以最小的努力为数据集中的所有变量创建直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11227987/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com