【问题标题】:Why is my R code only returning 1 output?为什么我的 R 代码只返回 1 个输出?
【发布时间】:2021-10-28 20:30:39
【问题描述】:

您好,我是使用 R 的新手,我正在尝试使用它创建一个版本的 Fermis Piano Tuner 问题。但是,当我需要它在运行代码时返回 2 时,它是否只返回 1 个估计值。有人知道我在这里做错了什么吗?

{
Population<-(2695598)
PPH<-(2) 
HWTP<-(0.04) 
TPYPP<-(2) 
TPTPD<-(6) 
WPY<-(261) 
((Population/PPH)*HWTP*TPYPP/(TPTPD*WPY))


Population2<-(2679080)
PPH2<-(2.48) 
HWTP2<-(0.04) 
TPYPP2<-(2) 
TPTPD2<-(6) 
WPY2<-(261)

{((Population/PPH)*HWTP*TPYPP/(TPTPD*WPY))}
{((Population2/PPH2)*HWTP2*TPYPP2/(TPTPD2*WPY2))}
}

【问题讨论】:

    标签: r statistics


    【解决方案1】:

    首先,我建议你创建一个函数

    fermis_piano_tuner <-
      function(Population,PPH,HWTP,TPYPP,TPTPD,WPY){
        ((Population/PPH)*HWTP*TPYPP/(TPTPD*WPY))
      }
    

    然后,您可以传递参数来获取结果

    fermis_piano_tuner(
      Population = 2695598,
      PPH = 2,
      HWTP = 0.04,
      TPYPP = 2,
      TPTPD = 6,
      WPY = 261
        )
    [1] 68.85308
    

    如果你想传递多个参数,你可以使用pmap

    library(purrr)
    pmap(
      .l =   tibble::tibble(
        Population  = c(2695598,2679080),
        PPH = c(2,2.48),
        HWTP = c(0.04,0.04),
        TPYPP = c(2,2), 
        TPTPD= c(6,6), 
        WPY = c(261,261)
      ),
      .f = fermis_piano_tuner
    )
    [[1]]
    [1] 68.85308
    
    [[2]]
    [1] 55.18642
    

    【讨论】:

      【解决方案2】:

      把最后两行改成

      c((Population/PPH)*HWTP*TPYPP/(TPTPD*WPY), 
        (Population2/PPH2)*HWTP2*TPYPP2/(TPTPD2*WPY2))
      

      【讨论】:

        猜你喜欢
        • 2022-11-13
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-01
        • 2012-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多