【问题标题】:Applying different function in R in a loop在循环中在 R 中应用不同的函数
【发布时间】:2019-11-09 06:14:06
【问题描述】:

假设我有向量或列表。我想在一个循环中将一些函数应用到这个列表中,例如:找到平均值、标准差、中位数、自相关函数等等。如何将它们作为参数传递或在循环中自动应用它们。例如,我的意思是:

iterative_function<- function(data, function_names)
  for (ii in 1:length(function_names)

        A=lapply(data, function_names(ii))

这个函数应该这样调用

iterative_function(X,c(mean,std,... act))

这意味着将函数一个一个地应用到列表的元素上。

【问题讨论】:

    标签: r list function loops


    【解决方案1】:

    我们可以遍历每个函数并将其应用于list 的每个元素

    #Thanks to @itslwg for simplifying the function
    iterative_fun <- function(data, fun) {
       lapply(fun, function(x) sapply(data, x))
    }
    
    iterative_fun(data, c(sd, sum))
    #[[1]]
    #    a     b 
    #1.581 2.160 
    
    #[[2]]
    # a  b 
    #15 91 
    

    数据

    尝试了这个数据

    data <- list(a = 1:5, b = 16:10)
    

    【讨论】:

    • 不需要替代品,对吧?你可以使用iterative_fun &lt;- function(data, fun) { lapply(fun, function(f) sapply(data, f))}
    • @itslwg 是的,你是对的。我已经更新了答案。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多