首页 > 解决方案 > 为 R 中的每个变量绘制单独的箱线图

问题描述

我搜索了很多如何做到这一点,但找不到任何相关的东西。

我正在尝试在 for 循环内为我的数据集中的每个变量绘制一个单独的箱线图。我尝试了以下方法:

for (column in names(articles)){
  if(is.numeric(articles[, column])) {
    bwplot(~column ,data = articles,main= paste(column))
  }
}

但是,它并没有产生我想要的东西。我该如何处理

标签: rdataframefor-loopmultiple-columnsboxplot

解决方案


我们可以获取数据框的所有数字列,lapply用于遍历每个列并创建一个绘图列表。

cols <- names(iris)[sapply(iris, is.numeric)]

list_diag <- lapply(cols, function(x) 
                    bwplot(reformulate(x), data = iris, main = x))
list_diag[[1]]

在此处输入图像描述


要在for循环中执行此操作,我们可以这样做:

list_diag <- vector("list", length(cols))
for (i in seq_along(cols)) {
  list_diag[[i]] <- bwplot(reformulate(cols[i]), data = iris, main = cols[i])
 }

推荐阅读