R integration with node JS

General Tech Bugs & Fixes 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I want to integrate R with node JS. I found out about a simple npm called r-script which allows r script to be run on node js.

For those of you who don't know what r-script does the following node JS runs the IntegrationTest.R R script

node JS code

var R = require('r-script');
var out = R('/Users/JC/Documents/Programming/R/Tutorial/IntegrationTest.R')
.data()
.callSync();

console.log(out);

IntegrationTest.R script

print('hello')

so above prints hello just fine when I run the node JS code.

Then when I try the script below (the R script works on R studio by the way), it throws me error and says Loading Required Packages : ape.

I thought maybe it doesn't know where to get the R package from so I specified the repository but it still throws me same error.

Anyone who attempted to integrate R with node JS experience the same thing or know what's going on here?

Thank you

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)

I honestly think the only difference between the two R script is that the first doesn't load any package and the second loads a package.

profilepic.png
manpreet 2 years ago

I hope you found an answer before, but your problem is you are not using needs like it recommends on the 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).

Example using needs:

import MASS package for isoMDS
needs(MASS)
 

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.