簡體   English   中英

如何對每組數據框應用函數

[英]How to apply function to each group of data frame

我有一個名為 covars 的數據框,具有三個種族。 如何應用函數Get_STATs以便獲得每個種族的輸出?

對,現在我是這樣運行的:

tt <- covars[covars$ETHNICITY == "HISPANIC",]
Get_STATs(tt)

tt <- covars[covars$ETHNICITY == "WHITE",]
Get_STATs(tt)

tt <- covars[covars$ETHNICITY == "ASIAN",]
Get_STATs(tt)

我試圖像這樣運行它的aggregate(covars, by = list(covars$ETHNICITY), FUN = Get_STATs)產生錯誤aggregate(covars, by = list(covars$ETHNICITY), FUN = Get_STATs) rror: $ operator is invalid for atomic vectors

aggregate分別在每一列上運行,我們可能需要by

do.call(rbind, by(covars, covars$ETHNICITY, FUN = Get_STATs))

或者split成一個list並循環遍歷該list並應用該函數

do.call(rbind, lapply(split(covars, covars$ETHNICITY), Get_STATs))

如果我們還需要 ETHNICITY 名稱

lst1 <- split(covars, covars$ETHNICITY)
do.call(rbind, Map(cbind, ETHNICITY = names(lst1), lapply(lst1, Get_STATs)))

根據 Get_STATs 函數,您可以使用 dplyr:

tt <- 
  covars %>% 
  group_by(ETHNICITY) %>% 
  Get_STATs()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM