R 如何从嵌套列表中的数据绘制多个密度图
我有一个嵌套列表,其中包含15个数据集(也包括列表),每个数据集有3列,但行数可变(每行数千行)。最后一个数据集的顶部在控制台中如下所示:R 如何从嵌套列表中的数据绘制多个密度图,r,nested-lists,lattice,density-plot,R,Nested Lists,Lattice,Density Plot,我有一个嵌套列表,其中包含15个数据集(也包括列表),每个数据集有3列,但行数可变(每行数千行)。最后一个数据集的顶部在控制台中如下所示: [[15]] Object.Number Internal Membrane 1 0 8.275335e+03 2575.41042 2 2
[[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个数据集中第2列中的值创建
我想我可以用lappy(myFiles,densityplot(args))
实现这一点,但是我找不到一种方法来引用densityplot
参数中的列
如果您对如何实现这一点有任何见解,我们将不胜感激。在
purrr
中,您可以使用~
和.x
的速记符号,例如:
library(purrr)
map(myFiles, ~ densityplot(.x[[2]]))
我将使用带有参数
.id
的dplyr::bind_rows
将所有数据.frame
s行绑定到单个数据.frame
;然后使用ggplot2
和facet\u 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)
#创建示例数据
lst%
变异(id=因子(id,级别=字符(1:15))%>%
ggplot(aes(mpg))+
几何密度()+
面包(~id,nrow=3,ncol=5)
这很有趣。我一点也不知道purr,但我一定会调查的。这似乎是一种非常有效的方法。是的,使用
.x
和~
的语法既短又方便。但是,它与在lappy
或map
中定义函数没有区别。所以map(myFiles,~densityplot(.x[[2]])
与map(myFiles,function(x)densityplot(x[[2]])
相同。后者又相当于lappy(myFiles,function(x)densityplot(x[[2]])
。您可以查看map
和lappy