我有一个嵌套列表,其中包含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
的参数中引用该列的方法。
对于实现此目标的任何见解将不胜感激。
答案 0 :(得分:2)
我将使用dplyr::bind_rows
和参数.id
将所有data.frame
行绑定到单个data.frame
中;然后将ggplot2
与facet_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)
答案 1 :(得分:1)
在purrr
中,您可以使用~
和.x
的简写形式,例如:
library(purrr)
map(myFiles, ~ densityplot(.x[[2]]))