【问题标题】:Using a function over a vector or data frame在向量或数据帧上使用函数
【发布时间】:2021-09-01 12:48:56
【问题描述】:

我刚刚写了一个函数(例如,func(a, x, y, z))x、y 和 z 是固定参数,我有一个向量(a <- seq(1, 14, 0.25))或一个数据框。将函数应用于它的最佳方法是什么?

干杯

【问题讨论】:

    标签: r loops apply purrr


    【解决方案1】:

    如果你的函数是矢量化的,你可以直接将a 传递给它。

    例如,

    func <- function(a, x, y, z) {
      a + x + y + z
    }
    a <- seq(1, 14, 0.25)
    func(a, 2, 3, 4)
    
    #[1] 10.00 10.25 10.50 10.75 11.00 11.25 11.50 11.75 12.00 12.25 12.50 12.75
    #[13] 13.00 13.25 13.50 13.75 14.00 14.25 14.50 14.75 15.00 15.25 15.50 15.75
    #[25] 16.00 16.25 16.50 16.75 17.00 17.25 17.50 17.75 18.00 18.25 18.50 18.75
    #[37] 19.00 19.25 19.50 19.75 20.00 20.25 20.50 20.75 21.00 21.25 21.50 21.75
    #[49] 22.00 22.25 22.50 22.75 23.00
    

    如果您的函数未矢量化,您需要使用某种循环来分别传递每个 a 值。与sapply -

    sapply(a, function(x) func(x, 2, 3, 4))
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2016-11-29
      • 1970-01-01
      • 2023-03-13
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      相关资源
      最近更新 更多