R:data.frame中所有列的绘图直方图

时间:2016-05-01 20:58:47

标签: r dataframe histogram numeric

我是R中的新用户,我刚刚开始使用它来查看我的数据分布,但我遇到了这个错误。我有一个数据框,我想绘制它的数字列的直方图。所以我所做的就是如下:

num_data <-my_data[, sapply(my_data, is.numeric)] 
for (i in 1:length(names(num_data))){
  print(i)
  hist( num_data[i], main='hist', breaks=20, prob=TRUE)
}

但是我在hist.default中遇到错误&#39;错误(num_data [i],main =&#34; hist&#34 ;, breaks = 20,prob = TRUE):   &#39; X&#39;必须是数字&#39; 我检查了num_data [i]的类型,它是一个数值列表。所以我不知道问题是什么。任何人都可以给我一些暗示吗?

3 个答案:

答案 0 :(得分:3)

并排ggplot解决方案。

library(ggplot2)
library(tidyr)
ggplot(gather(num_data, cols, value), aes(x = value)) + 
       geom_histogram(binwidth = 20) + facet_grid(.~cols)

答案 1 :(得分:1)

转换矩阵中的Dataframe。 假设你有数据帧文件说mydata然后使用以下命令: NEW_DATA = data.matrix(MYDATA) hist(new_data)

答案 2 :(得分:1)

比hist()更可靠的是Hmisc包中的直方图函数:

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

这应该打印数据框中所有列的直方图。