从函数返回数据帧或向量

时间:2017-12-08 12:35:46

标签: r function vector return-type

我从-LL输入计算了模型拟合(AIC)。我使用了矢量化函数,我想返回所有计算值的data.framevector以供进一步分析。该函数工作正常,但如果我定义一个输出向量,它不会返回此向量。

这是我的功能:

function.aic <- function(k,LL)   {    
    aic <- (2*(LL)) + (2*k)    
    m <-mean(aic)  
    print(m)    
    print(aic)
    aic_vector <- as.data.frame(aic) }

此外,将此向量保存在具有输入变量&#34; LL&#34;的名称的对象中会很棒。为每个计算都有特定的对象。但我不知道该怎么做,谷歌并没有真正帮助。

1 个答案:

答案 0 :(得分:0)

好像你只是错过了一个return语句。另外,要提供命名输出,可以使用deparsesubstitute来获取变量名称。然后,您可以创建一个列表,并为list元素指定变量的名称。例如:

function.aic <- function(k,LL)
{
  aic <- (2*(LL)) + (2*k)
  m <-mean(aic)
  print(m)
  print(aic) 
  aic_vector <- as.data.frame(aic) 

  mylist=list()
  mylist[[deparse(substitute(LL))]] = aic_vector
  return(mylist)
}

input_1 = 10
input_2 = 10

x = function.aic(input_1,input_2)

x现在是:

$input_2
  aic
1  40

所以,x$input_2包含您的AIC数据帧。希望这有帮助!