我是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]的类型,它是一个数值列表。所以我不知道问题是什么。任何人都可以给我一些暗示吗?
答案 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)
这应该打印数据框中所有列的直方图。