【问题标题】:How to get a vector to work as an argument in my function in r?如何让向量在我的 r 函数中作为参数工作?
【发布时间】:2020-02-17 00:13:54
【问题描述】:

我试图让我的函数(在 r 中)使用二元素向量作为参数,但是当我使用输入运行函数时,其中一个元素“未找到”。

我尝试使用占位符作为参数,并在函数后面定义占位符。我也尝试直接使用连接值作为参数。

mse.func <- function(ya.vctr, N=gmp$pop, Y=gmp$pcgmp){
    ya.vctr <- c(y, a)
    mean.sq.er <- mean((Y - (y * (N^a)))^2)
    return(mean.sq.er)
}

mse.func(c(5000, 0.10))

我期待一个数值,但 mse.func(c(5000, 0.10)) 返回一个错误,指出“找不到对象 'y'”。

【问题讨论】:

  • 您的函数调用中没有定义对象y。也没有对象a。如果你已经为函数调用提供了ya.vctrc(5000, 0.10) 的值,为什么还要用这些值覆盖你的向量ya.vctr?我猜你的意思是y &lt;- ya.vctr[1]; a &lt;- ya.vctr[2]

标签: r function vector


【解决方案1】:

这应该可行:

mse.func <- function(ya.vctr, N=gmp$pop, Y=gmp$pcgmp){
    mean.sq.er <- mean((Y - (ya.vctr[1] * (N^ya.vctr[2])))^2)
    return(mean.sq.er)
}

mse.func(c(5000, 0.10))

另外,一个更简单的选择是(虽然它不接受向量作为输入,所以它不回答问题):

mse.func <- function(y, a, N=gmp$pop, Y=gmp$pcgmp){
    mean.sq.er <- mean((Y - (y * (N^a)))^2)
    return(mean.sq.er)
}

mse.func(5000, 0.10)

【讨论】:

  • 第一个将非常适合我的目的!谢谢!
猜你喜欢
  • 2020-08-17
  • 2021-07-03
  • 1970-01-01
  • 2023-03-19
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 2016-10-04
相关资源
最近更新 更多