【问题标题】:Apply many functions to one vector对一个向量应用多个函数
【发布时间】:2015-09-07 20:39:18
【问题描述】:

我正在寻找一种将许多函数应用于一个向量的选项。我认为它对逆应用函数很友好,其中一个函数应用于许多向量(或列)。

有没有办法指定两个或多个函数(如均值和最大值)并将其应用于向量?

【问题讨论】:

  • 可以欣赏一个例子,但我想一种方法是做例如v <- rnorm(10); sapply(c("mean","median","sd"), function(nf){get(nf)(v)})
  • 这是我一直在寻找的一种解决方案。不幸的是,我不熟悉 get 函数。感谢解决这个问题,尽管我没有提供示例。

标签: r apply


【解决方案1】:

类似于@CathG 的评论,但没有get

v <- rnorm(10)
funs <- list(mean, median, sd) 
sapply(funs, function(fun, x) fun(x), x = v)

或者do.call:

sapply(funs, do.call, args = list(v))

【讨论】:

  • 为什么不只是sapply(funs, function(fun, x) fun(v))
  • @DavidArenburg 最佳实践是始终显式传递所有对象,而不是依赖范围。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
相关资源
最近更新 更多