访问R中函数中的变量

时间:2017-12-20 14:55:10

标签: r

我想知道是否有可能简化以下函数的代码(即,如果代码的一部分: d0 = p $ d0,d11 = p $ d11, d12 = p $ d12,k11 = p $ k11,k12 = p $ k12 可以被某些函数替换)因为我只是通过列表p访问传递给函数的变量。

这是函数的R代码:

equation = function(p){

  d0 =  p$d0
  d11 = p$d11
  d12 = p$d12
  k11 = p$k11
  k12 = p$k12

  result = d0 + d11*k11 + d12*k12

  return(result)
}

equation(list(d0=1,d11=2,d12=3,k11=100,k12=1000))

4 个答案:

答案 0 :(得分:3)

不需要任何花哨的东西。你没有足够的资源在每个前面输入ListLinePlot[lines, AspectRatio -> 1] 是过于繁琐的,你不需要在本地分配任何东西。 p$并不是必需的,因此我们实际上可以使用单行主体编写您的函数:

return

答案 1 :(得分:0)

您可以简单地将元素作为函数参数传递:

equation <- function(d0, d11, d12, k11, k12){
  d0 + d11*k11 + d12*k12
}

equation( d0=1, d11=2, d12=3, k11=100, k12=1000)
[1] 3201

科林

答案 2 :(得分:0)

另一种选择是使用zeallot包,其中包含解包[{1}}:

%<-%

答案 3 :(得分:0)

我使用list2env(p,envir = environment())

找到了解决方案
equation = function(p){

  list2env(p, envir = environment())

  result = d0 + d11*k11 + d12*k12

  return(result)
}

方程(列表(D0 = 1,D11 = 2,D12 = 3,K11 = 100,K12 = 1000))