在我的探索性分析中,我正在使用直方图功能。我想通过直方图函数在我的数据集中运行几个变量,并为每个变量添加标题和算术平均值的一行。这是我有多远(但主要标题仍然缺失):
histo.abline <-function(x){
hist(x)
abline(v = mean(x, na.rm = TRUE), col = "blue", lwd = 4)}
sapply(dataset[c(7:10)], histo.abline)
我试图在直方图函数中添加一个主参数,但它没有选择我的数据集向量的正确变量名。当我在其中放置main=x
时,它会为每个变量返回NULL。姓氏和其他功能也不起作用。你能帮帮我吗?
答案 0 :(得分:1)
您可以尝试使用ggplot:
library(ggplot)
histo.abline <-function(dataset,colnum){
p<-ggplot(dataset,aes(dataset[,colnum]))+geom_histogram(bins=5,fill=I("blue"),col=I("red"), alpha=I(.2))+
geom_vline(xintercept = mean(dataset[,colnum], na.rm = TRUE))+xlab(as.character(names(dataset)[colnum]))
return(p)
}
由于您没有提供数据,因此可以使用mtcars并创建直方图列表
dataset=mtcars
listOfHistograms<-lapply(3:7,function(x) histo.abline(dataset,x))
您的列表有5个直方图,您可以通过以下方式绘制第一个直方图:
print(listOfHistograms[[1]])
ggplot的更多直方图选项:https://www.r-bloggers.com/how-to-make-a-histogram-with-ggplot2/
希望这会有所帮助
编辑:一张图中的多个图
一种方法是通过cowplot库:
library(cowplot)
plot_grid(plotlist=listOfHistograms[1:4])