将自定义函数应用于具有通用名称的任何数据集
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)
我有一个自定义函数,我想将其应用到共享通用名称的任何数据集。
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)