【问题标题】:Separating Parameters in Repeated Function Calls在重复的函数调用中分离参数
【发布时间】:2021-10-28 18:30:48
【问题描述】:

使用值向量,我希望在函数上调用每个值

values = 1:10
rnorm(100, mean=values, sd=1)

mean = values 重复序列 (1,2,3,4,5,6,7,8,9,10)。如何获得一个矩阵,每个矩阵都有 100 个观察值并使用向量中的单个元素? 即:

rnorm(100, mean=1, sd=1)
rnorm(100, mean=2, sd=1)
rnorm(100, mean=3, sd=1)
rnorm(100, mean=4, sd=1)
# ...

【问题讨论】:

    标签: r loops vector parameters replicate


    【解决方案1】:

    您的问题并不清楚,但我认为您想要一个包含 10 行和 100 列的矩阵。既然如此,你可以这样做:

    matrix(rnorm(1000, rep(1:10, each = 100)), nrow = 10, byrow = TRUE)
    

    或者使用sapply而不是lapply来修改akrun的答案

    【讨论】:

      【解决方案2】:

      Map 来自基础R

      Map(function(i) rnorm(100, mean = i, sd = 1), 1:10)
      

      【讨论】:

        【解决方案3】:

        一个选项是lapply 来自base R

        lapply(1:10, function(i) rnorm(100, mean = i, sd = 1))
        

        【讨论】:

          【解决方案4】:

          使用 map 我可以为向量中的每个值应用一个函数values

          library(purrr)
          
          values = 1:10
          map_dfc(
            .x = values,
            .f = ~rnorm(100,mean = .x,sd = 1)
            )
          

          在这种情况下,我将有一个 100x10 的 data.frame

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-07-04
            • 2017-08-06
            • 2016-04-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多