我怎样才能停止 sapply 删除我的 barplot 标题?

How can I stop sapply dropping my barplot titles?

我想为我的数据集中的因子变量绘制条形图。为此,我 运行 sapply(data[sapply(data, class)=='factor'],function(x) barplot(table(x)))。令我恼火的是,这些图记住了它们的因子标签,但其中 none 保留了标题。如何在不手动为每个图表添加标题的情况下解决此问题?

目前,我得到了像这样的幽默模糊的无标题图表:

怎么样

## extract names
fvars <- names(data)[which(sapply(data,inherits,"factor"))]
## apply barplot() with main=
lapply(fvars, function(x) barplot(table(data[[x]]), main=x))

?

示例数据:

data <- mtcars
for (i in c("vs","am","gear","carb")) data[[i]] <- factor(data[[i]])

请注意,这会同时创建所有绘图。如果您在具有绘图历史记录(RStudio 或 RGui)的 GUI 中工作,您可以通过图表返回页面。否则,您可能希望在开始之前使用 par(mfrow=c(nr,nc))(填写行数和列数)来设置子图。

返回的数字是条的中点(参见 ?barplot):如果您不想看到它们,可以将 barplot() 调用包装在 invisible() 中。