2017-02-10 5 views
1
var express = require('express'); 
var router = express.Router(); 
var session = require('express-session'); 

let Rserve = require("rserve-js"); 


var disease="fever"; 
    var dataz="cough"; 
enter code here 
let client = Rserve.connect("localhost", 6311, function() { 
console.log("Connected to Rserve."); 

client.eval("datas<-read.csv('~/Desktop/data.csv')", function(err, response) { 
    if (err) { 
     throw err; 
    } 
    console.log("table is loaded."); 

    client.eval("data<-datas[,c(2,3)]", function(err, response) { 
     if (err) { 
      throw err; 
     } 


    }); 

    client.eval("print(data)", function(err, response) { 
     if (err) { 
      throw err; 
     } 


    }); 


    // client.assign("x", disease); 
    // client.assign("y", dataz); 

    // client.eval("print(x)"); 

    client.eval("result<-subset(data,Sym1=='fever' | Sym1=='sweating')", function(err, response) { 
     if (err) { 
      throw err; 
     } 


    }); 
    client.eval("da<-summary(result)", function(err, response) { 
     if (err) { 
      throw err; 
     } 

    }); 
    client.eval("print(da)", function(err, response) { 
     if (err) { 
      throw err; 
     } 

     //console.log(response.value); // shows dimension of iris table 
    }); 
     var result= client.eval("summary(result)", function(err, response) { 
     if (err) { 
      throw err; 
     } 

     //console.log(response); // shows dimension of iris table 
    }); 
     console.log(result); 
}); 
}); 


module.exports = router; 

私は評価のためのノードjsからrserve-jsを使用して、RでRserveに引数を動的に送信する方法は?

Sym1=='fever' 
Sym1=='sweating' 

などの静的データを送信していますが、私は毎回Sym1が異なることができるように、それは動的なものにしたい、変数を割り当てる方法はありますか?

答えて

0

それは非常にきれいではありませんが、あなたはいつものように、JSでサブセットの式を構築することができます

var symptoms = ['sweating', 'fever']; 
var subsetExpr = symptoms 
    .map(function(symptom){ return 'Sym1==' + symptom; }) 
    .join(' | '); 
client.eval("result<-subset(data,"+ subsetExpr +")" 
関連する問題