从R

时间:2017-08-17 18:27:12

标签: r

我目前有一个用R编写的基本脚本,它有两个嵌入另一个的函数:

FunctionA <- Function() {
  results_from_B <- FunctionB()
  results_from_C <- FunctionC()
}

功能B生成一些数据,然后在功能C中进行分析。

如果我在函数A中停止代码,我可以看到results_from_C的结构 - 它出现在'values'下面,我可以使用语法results_from_C$column_name1引用不同的元素。

我在Function C中通过使用:

指定返回值来实现这一点
return(list(column_name_1 = value1, column_name_2 = value2)

但是,我无法弄清楚如何从函数A返回这些相同的值(在相同的结构中) - 我尝试的所有内容都返回一个格式为'Data'而不是'Values'的列表,并且无法使用语法results_from_A$column_name1

任何人都可以帮助我理解我需要做什么才能从函数A之外的函数C中提取结果吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

我不明白格式化为&#39;数据&#39;的含义。而不是&#39;值&#39; 。 您描述的设置没有任何问题,我时不时地使用函数内部的函数,它完全没问题。

(请注意,R区分大小写,function不是Function。)

FunctionA <- function() {
  FunctionB <- function() 1:2*pi
  FunctionC <- function(x) 
      list(column_name_1 = x[1], column_name_2 = x[2])

  results_from_B <- FunctionB()
  results_from_C <- FunctionC(results_from_B)
  results_from_C
}

result <- FunctionA()
result
$column_name_1
[1] 3.141593

$column_name_2
[1] 6.283185

result$column_name_1
[1] 3.141593
这是吗?如果没有,请澄清你的问题。