将自定义函数应用于具有通用名称的任何数据集

Apply custom function to any dataset with common name

我有一个自定义函数,我想将其应用到共享通用名称的任何数据集。

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)

现在我将如何将相同的函数应用于两个值?

如果我理解你的问题,我建议你将数据框放入列表中并应用到它上面。所以

## 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)