[英]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.