R调用Fortran子例程

时间:2014-07-22 16:26:02

标签: r fortran subroutine forecasting

我理解来自以下代码的.Fortran调用Fortran子例程,但为什么我们在这里使用C_子例程名?我在互联网上查看的其他几个子例程调用示例只是"stl",有人可以帮我解释为什么C_stl而不是stl吗?

 z <- .Fortran(C_stl, x, n,
          as.integer(period),
          as.integer(s.window),
          as.integer(t.window),
          as.integer(l.window),
          s.degree, t.degree, l.degree,
          nsjump = as.integer(s.jump),
          ntjump = as.integer(t.jump),
          nljump = as.integer(l.jump),
          ni = as.integer(inner),
          no = as.integer(outer),
          weights = double(n),
          seasonal = double(n),
          trend = double(n),
          double((n+2*period)*5))

2 个答案:

答案 0 :(得分:1)

经过大量的搜索,我相信我找到了答案。查看目录<path to R sources>/src/library/stats中的NAMESPACE文件。

您会看到所有C / Fortran例程都使用前缀为C_的名称引用,这似乎是由useDynLib完成的。

答案 1 :(得分:1)

C_stlstats包中的一个对象,包含有关Fortran子例程的辅助信息。它未导出,因此要查看它,您必须输入stats:::C_stl

> stats:::C_stl
$name
[1] "stl"

$address
<pointer: 0x000000000f87b950>
attr(,"class")
[1] "RegisteredNativeSymbol"

$dll
DLL name: stats
Filename: E:/apps/R/R-3.1.1/library/stats/libs/x64/stats.dll
Dynamic lookup: FALSE

$numParameters
[1] 18

attr(,"class")
[1] "FortranRoutine"   "NativeSymbolInfo"