我有一个矩阵/数据帧,即10列和1.000.000行。现在,我想在此矩阵上应用20个不同的函数并存储结果。每个功能就像
df %>% group_by(`column1`, `column2`, `column3`, `column4`) %>% filter (n()>20 )
该功能之后,我想将此矩阵/数据帧保存到一个列表中,因此应该有一个包含20种不同矩阵/数据帧的列表。
我循环执行此操作,但这确实很慢。我对apply
进行了一些尝试,但无法真正弄清楚我想念的是什么。
我的实际尝试是:
apply(X=df,MARGIN=c(1,2),FUN=function(df) df %>% group_by(`column1`, `column2`, `column3`, `column4`) %>% filter (n()>20 ))
出现错误:
UseMethod(“ group_by_”)中的错误: 没有适用于“ group_by_”的适用方法应用于“字符”类的对象
我闻到我离解决方案不远。你能给我一个提示吗?
感谢和问候
答案 0 :(得分:1)
这里是一个例子。这里,funs
包含要应用的功能的名称,而ml
是结果列表。希望这会给您足够的提示以实现您想要的。如果您需要特定问题的帮助,请提供一些数据。
funs <- c("sqrt", "log", "exp")
m <- matrix(runif(1.e4), 100, 100)
am <- function(f, m){
apply(m, MARGIN = 1:2, match.fun(f))
}
ml <- lapply(funs, am, m = m)