2017-02-23 122 views
-2

我有一個data.frame,我想按照其中一列對數據進行分組,然後應用一個函數,該函數對數據的其餘列進行操作。該函數返回混合對象的列表。從用戶函數中返回一個列表使用group_by in R

如果我只是從我知道我可以使用類似的組返回一個值:

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

我也知道,我可以列表上使用,這將愉快地返回一個列表的lapply執行操作。我只是不確定如何將這兩部分知識結合起來以達到我想要的結果。

添加了示例代碼,userFunction和數據是代表性的,但應該給出足夠的想法以獲得我想要的內容。

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) 

我想找回列表group_by列中的因子數目。在列表中應該是a,b和c。

+0

也許你可以提供一些樣本輸入數據和預期的輸出? – Gopala

回答

0

這似乎工作,因爲我想要的。

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