C++ 试图理解.External()是什么?

C++ 试图理解.External()是什么?,c++,r,C++,R,我对R相当不熟悉,但希望使用它来尝试使用特定的包。我已从R-Forge安装了以下软件包: install.packages("ecomodtools", repos = "https://R-Forge.R-project.org") 我收到了以下错误: 仅以源代码形式提供的包,可能需要编译C/C++/Fortran:“ecomodtools” 并了解到我需要“RTools”来安装它。所以我得到了RTools,我能够安装这个软件包 我在下面包含了一些可以复制粘贴的示例代码,但是当我运行这些代码

我对R相当不熟悉,但希望使用它来尝试使用特定的包。我已从R-Forge安装了以下软件包:

install.packages("ecomodtools", repos = "https://R-Forge.R-project.org")
我收到了以下错误:

仅以源代码形式提供的包,可能需要编译C/C++/Fortran:“ecomodtools”

并了解到我需要“RTools”来安装它。所以我得到了RTools,我能够安装这个软件包

我在下面包含了一些可以复制粘贴的示例代码,但是当我运行这些代码时,我得到了一个关于.External()的错误,这正是我试图理解的:

library(ecomodtools)

# 2D Gaussian dispersal function defined according to Clark et al. (1999)
# Used in the Monte Carlo integration
genexp.disp <- function(from, to, params)
{
  r.sq <- (from[1] - to[1])^2 + (from[2] - to[2])^2
  (1.0 / (pi * params[1]^2)) * exp(-(r.sq / params[1]^2))
}

# Monte Carlo integration settings
max.prob <- .Machine$double.eps^0.25
initial.step <- 10000
step.size <- 10000
max.runs <- 1000000
max.rel.var <- .Machine$double.eps^0.25

# Boundary condition
boundary <- "restricting"

# Alpha parameter setting
params <- c(1.0)

# Make a small grid (3 x 3) for testing purposes
x.coords <- seq(0.0, 3.0, 1.0)
y.coords <- seq(0.0, 3.0, 1.0)
test.grid <- MakeGridFromCoords(x.coords, y.coords)

# Calculate the transition matrices for each different approximation method

AA.mc <- LatticeTransitionProbs(
  x1 = test.grid$x1, x2 = test.grid$x2, y1 = test.grid$y1, y2 = test.grid$y2,
  func = genexp.disp, approx.method = "AA", boundary = boundary, max.prob = max.prob,
  initial.step = initial.step, step.size = step.size, max.rel.var = max.rel.var, max.runs = max.runs, params = params)
库(ecomodtools)
#根据Clark等人(1999)定义的2D高斯扩散函数
#用于蒙特卡罗积分

genexp.disp我很惊讶这个编译。很明显,它已经很老了,没有进行积极的开发,而且在过去一直是。很明显,此函数的使用方式与您的使用方式相同,但此后,如何使用
.External()
的语法发生了变化<代码> >(外)(< /代码>)是将R对象交给C++等调用的函数(如<代码>。看见