如何从嵌套列表中的数据制作多个密度图

时间:2018-09-07 13:25:35

标签: r nested-lists lattice density-plot

我有一个嵌套列表,其中包含15个数据集(也包括列表),每个数据集都有3列,但行数可变(每个数以千计)。最后一个数据集的顶部在控制台中如下所示:

[[15]]
           Object.Number            Internal                      Membrane
1                0                 8.275335e+03                   2575.41042
2                2                 1.225267e+04                   5813.50000
3                3                 9.554725e+03                   2483.51172

我想制作一个密度图的5x3网格,该网格是使用15个数据集的每个第二列中的值创建的。

我以为我可以使用lapply (myFiles, densityplot(args))来做到这一点,但是我找不到在densityplot的参数中引用该列的方法。

对于实现此目标的任何见解将不胜感激。

2 个答案:

答案 0 :(得分:2)

我将使用dplyr::bind_rows和参数.id将所有data.frame行绑定到单个data.frame中;然后将ggplot2facet_wrap一起使用,以3x5网格布局绘制密度。

以下是使用mtcars示例数据的示例:

# Create sample data
lst <- replicate(15, mtcars, simplify = F)

# Plot
library(tidyverse)
bind_rows(lst, .id = "id") %>%
    mutate(id = factor(id, levels = as.character(1:15))) %>%
    ggplot(aes(mpg)) +
    geom_density() +
    facet_wrap(~ id, nrow = 3, ncol = 5)

enter image description here

答案 1 :(得分:1)

purrr中,您可以使用~.x的简写形式,例如:

library(purrr)
map(myFiles, ~ densityplot(.x[[2]]))