为R中的每个变量绘制单独的箱线图

时间:2020-03-13 10:15:14

标签: r dataframe for-loop multiple-columns boxplot

我搜索了很多方法,但是没有找到任何相关内容。

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

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

但是,它没有产生我想要的东西。我该怎么办

1 个答案:

答案 0 :(得分:0)

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

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

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

enter image description here


要在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])
 }