【问题标题】:R Function call gives error "Incorrect number of parameters; there should be 4." How to format code so function is called correctly?R 函数调用给出错误“参数数量不正确;应该有 4 个。”如何格式化代码以便正确调用函数?
【发布时间】:2019-04-11 17:10:13
【问题描述】:

我有一个非常简单的示例,我正在尝试运行它从外部包调用 R 函数。

我正在使用这个 [BTYD] (https://cran.r-project.org/web/packages/BTYD/BTYD.pdf) 包。

library(BTYD)  
library(dplyr) 


INPUT <- data.frame(R = 1:2, ALPHA = 3:4, S = 4:5, 
    BETA = 6:7, X = 8:9, T_X = 10:11, T_CAL = 12:13, D = 14:15 )

res <- transmute(INPUT, output = BTYD::pnbd.DERT(params = c(R,ALPHA,S,BETA),
                                                  x = X,
                                                  t.x = T_X,
                                                  T.cal = T_CAL, 
                                                  d = D))

当我在 R Studio 中运行它时,我得到以下输出

mutate_impl(.data, dots) 中的错误: 评估错误:pnbd.DERT 中的错误:参数数量不正确;应该有4个..

不太清楚为什么这不起作用,因为当我用随机数替换参数 X、T_X、T_CAL 和 D 中的所有变量时,它的计算没有任何错误。

文档中的特定函数要求参数是向量

Pareto/NBD 参数 - 按此顺序包含 r、alpha、s 和 beta 的向量。 r 和 alpha 是 NBD 交易过程中未观察到的参数。 s 和 beta 是帕累托(指数伽玛)辍学过程的未观察到的参数

【问题讨论】:

    标签: r


    【解决方案1】:

    所以经过一番动荡后,我找到了解决办法。使用rowwise()function。

    output <- INPUT %>%
      rowwise() %>%
      transmute(output = BTYD::pnbd.DERT(params = c(R,ALPHA,S,BETA),
                                         x = X,
                                         t.x = T_X,
                                         T.cal = T_CAL,
                                         d = D))
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多