首页 文章

使用R中的group_by从用户函数返回列表

提问于
浏览
-2

我有一个data.frame,我想通过其中一列对数据进行分组,然后应用一个函数,该函数对数据的其余列进行操作 . 该函数返回混合对象的列表 .

如果我只是从组中返回一个值,我知道我可以使用类似的东西:

df %>% group_by(Column_1) %>% summarise(my_function)

我也知道我可以使用lapply在列表上执行操作,它将很乐意返回一个列表 . 我只是不确定如何结合这两个知识来实现我想要的结果 .

添加了示例代码,userFunction和data是代表性的,但应该对我想要的内容有足够的了解 .

userFunction <- function(carData){
  return(list(
    a = carData$am * carData$carb,
    b = plot(carData$disp ~ carData$carb),
    c = mean(carData$drat)
  ))
}

mtcars %>% 
  group_by(cyl) %>%
  summarise(userFunction)

我想回到列表中列出i_group_by列中的因子数量 . 在列表中应该是a,b和c .

1 回答

  • 0

    这看起来像我想要的那样有效 .

    this <- by(mtcars, mtcars$am, userFunction)
    

相关问题