[英]Looping through or lapply on list of dataframes in R
我確實了解如何使用lapply來更改列表中幾個數據框中的變量名稱。 但是,我希望執行稍微(但僅稍微)更復雜的操作。
更具體地說,我希望計算幾個實體的平均增長率。 已經計算出增長率,所以我只需要對所有數據幀執行以下操作
for (i in 1:13) {
growth.type[,i] <- tapply(growth[,8+i] , growth$type, mean, na.rm = TRUE)
}
這將創建一個新的數據框( growth.type
),該數據框按type
包括原始數據框( growth
)中所有幾百個增長率的平均值。
現在,我想對幾個數據幀(例如growth
)執行此操作,然后將它們放入新的數據幀(例如growth.type
)。
我希望這是有道理的。
將您要處理的所有數據框放入列表中
xy <- list(growth1, growth2, growth3, ...)
然后將自定義函數應用於此xy
對象。
customFunction <- function(.data) {
for (i in 1:13) {
growth.type[,i] <- tapply(.data[,8+i] , .data$type, mean, na.rm = TRUE)
}
growth.type # this is the object which will be returned when function finishes
}
然后做
out <- lapply(xy, FUN = customFunction)
如果要合並lapply
的結果, lapply
可以使用do.call
,例如do.call("rbind", out)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.