我有一个自定义函数,我想应用于任何共享公用名的数据集。
common_funct=function(rank_p=5){
df = ANY_DATAFRAME_HERE[ANY_DATAFRAME_HERE$rank <rank_p,]
return(df)
}
我知道有了常见的功能,我可以做下面的事情,以获得每个功能的价值。
apply(mtcars,1,mean)
但如果我想这样做:
apply(any_dataset, 1, common_funct(anyvalue))
我将如何传递它?
library(dplyr)
mtcars$rank = dense_rank(mtcars$mpg)
iris$rank = dense_rank(iris$Sepal.Length)
现在我将如何将同一个函数应用于这两个值?
答案 0 :(得分:0)
如果我理解你的问题,我会建议你把数据框放到一个列表中并应用它。所以
## Your example function
common_funct=function(df, rank_p=5){
df[df$rank <rank_p,]
}
## Sanity check
common_funct(mtcars)
common_funct(iris)
接下来创建数据框列表
l = list(mtcars, iris)
并使用lapply
lapply(l, common_funct)