【发布时间】:2018-01-29 18:03:55
【问题描述】:
我试图想出一种简洁的方法来绘制 R 数据框中所有列的网格视图。问题是我的数据框中既有离散值又有数值。为简单起见,我们可以使用 R 提供的名为 iris 的样本数据集。我会使用par(mfrow(x, y)) 来分割我的地块,也许使用mapply 来循环浏览每一列?我不确定这里最好的是什么。
我在想类似的事情:
ggplot(iris, aes(Sepal.Length))+geom_density()
而是为每一列绘制。我担心的是“物种”列是离散的。也许“geom_density”在这里不适合使用,但我们的想法是在一个图中查看每个数据框的变量分布——甚至是离散的。离散值的条形图可以达到目的。基本上我正在尝试执行以下操作:
- 循环浏览数据框中的每一列
- 如果是数字,则绘制直方图
- 如果是离散的(基本上是字符串),则绘制条形图
任何想法或建议将不胜感激!
【问题讨论】:
-
我强烈推荐
skimr包来了解发行版。试试这个:library(skimr); skim(iris). -
类似
GGally::ggpairs(iris)?或者你只想要单变量? -
使用 ggplot 我倾向于将一组图用于数字变量,另一组用于非数字变量。试试这个
library(tidyverse); iris %>% select_if(is.numeric) %>% gather() %>% ggplot(aes(value))+ geom_density()+ facet_wrap(~key); iris %>% select_if(negate(is.numeric)) %>% gather() %>% ggplot(aes(value))+ geom_bar()+ facet_wrap(~key)。我不会将此作为答案发布,因为您要求一个情节。 :-) -
有时值得一看
plot(iris)!! -
plot(iris)确实很有帮助,非常适合研究变量之间的相关性。它并不关注每个变量的分布。