我想将 R 与 Node JS 集成。我发现了一个名为 r-script
的简单 npm,它允许 r 脚本在 Node js 上运行。
对于那些不知道 r-script 做什么的人,以下 Node JS 运行 IntegrationTest.R
R 脚本
Node JS代码
var R = require('r-script');
var out = R('/Users/JC/Documents/Programming/R/Tutorial/IntegrationTest.R')
.data()
.callSync();
console.log(out);
IntegrationTest.R 脚本
print('hello')
所以当我运行 Node JS 代码时,上面打印 hello 就好了。
然后当我尝试下面的脚本(顺便说一下,R 脚本在 R studio 上工作)时,它会抛出错误并说 Loading Required Packages : ape
.
我想它可能不知道从哪里获取 R 包,所以我指定了存储库,但它仍然抛出同样的错误。
任何尝试将 R 与 node JS 集成的人都遇到过同样的事情或知道这里发生了什么?
谢谢
Node JS
var R = require('r-script');
var out = R('/Users/JC/Documents/Programming/R/Tutorial/MoransI.R')
.data()
.callSync();
console.log(out);
MoransI.R
if (!require("ape")) {
install.packages("ape", repos="http://cran.rstudio.com/")
library("ape")
}
ozone <- read.csv('/Users/JC/Documents/Programming/R/Tutorial/ozone.csv', sep=',', header=T)
head(ozone, n=10)
ozone.dists <- as.matrix(dist(cbind(ozone$Lon, ozone$Lat)))
ozone.dists.inv <- 1/ozone.dists
diag(ozone.dists.inv) <- 0
ozone.dists.inv[1:5, 1:5]
Moran.I(ozone$Av8top, ozone.dists.inv)
老实说,我认为这两个 R 脚本之间的唯一区别是第一个不加载任何包,而第二个加载一个包。
最佳答案
我希望您之前找到了答案,但您的问题是您没有使用 needs喜欢它在 Github readme 上的推荐:
r-script
A simple little module for passing data from NodeJS to R (and back again).
Data passed from node is converted into a list and loaded into the R environment as the variable input. No special syntax in R is needed. For better portability/reliability, it's recommended to load packages with needs (comes packaged inside the module — no installation required).
使用需要
的示例:
import MASS package for isoMDS
needs(MASS)
关于javascript - R 与 Node JS 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42564830/