在R中使用lApply绘制多个数据帧 [英] Plot multiple dataframes with lapply in R

查看:11
本文介绍了在R中使用lApply绘制多个数据帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用lApply函数绘制几个数据帧(每个数据帧一个数据帧),但是尽管有关于这个主题的所有帖子,我仍然找不到答案,因为我一直收到错误:绘图的输出列表为空。

我的数据结构如下:

df1 <- mtcars %>% group_by(cyl) %>% tally()
colnames(df1) <- c('var', 'n')
df2 <- mtcars %>% group_by(gear) %>% tally()
colnames(df2) <- c('var', 'n')
dfList <- list(df1, df2)

dfList
[[1]]
# A tibble: 3 x 2
    var     n
  <dbl> <int>
1     4    11
2     6     7
3     8    14

[[2]]
# A tibble: 3 x 2
   var     n
  <dbl> <int>
1     3    15
2     4    12
3     5     5

我已尝试:

make_hist <- function(xvar){
     ggplot(dfList, aes_(x = ~var, y = as.name(xvar))) +
     geom_col() }

plots <- lapply(names(dfList), make_hist)

plots
list()

plots[1]
[[1]]
NULL

推荐答案

尝试此操作绘制数据框列表。您的make_hist函数已调整为处理单个数据帧。然后lapply可以将make_hist应用于列表的每个元素。

make_hist <- function(df){
  ggplot(df, aes(x = var, y = n)) +
    geom_col() }

plots <- lapply(dfList, make_hist)

这篇关于在R中使用lApply绘制多个数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆