UNPKG

3.29 kBMarkdownView Raw
1rlab -- A JavaScript Scientific Library like R
2
3## introduction
4
5The rlab is a A JavaScript Scientific Library like R.
6
7It's based on `lodash.js , jStat.js and numeric.js`
8
9There is a webIDE server based on rlab , you may start it by :
10
11```
12node rserver.js
13```
14
15## install
16
17```
18npm install rlab
19```
20
21## use rlab
22
23file : rtest.js
24
25```javascript
26var R = require("rlab");
27var M = R.M;
28var c = console;
29
30var dice = R.steps(1,6);
31c.log("dice=", dice);
32
33var x = R.samples(dice, 6, {replace:false});
34c.log("x=", x);
35
36var x = R(dice).samples(6, {replace:false}).value();
37c.log("chain1:x=", x);
38
39var x = R(dice).samples(10).str();
40c.log("chain2:x=", x);
41
42var x = R.samples(dice, 10);
43c.log("x=", x, "max=", R.max(x), "min=", R.min(x),
44 "mean=", R.mean(x), "sd=", R.sd(x));
45
46c.log("cov(x,x)=", R.cov(x,x));
47c.log("cor(x,x)=", R.cor(x,x)); // 相關係數
48c.log("factorial(10)=", R.factorial(10)); // 階層 n!
49c.log("lfactorial(10)=", R.lfactorial(10).toFixed(4)); // log(n!)
50c.log("choose(5,2)=", R.choose(5,2)); // 組合 C(n,m)
51c.log("lchoose(5,2)=", R.lchoose(5,2)); // log C(n,m)
52c.log("permutation(5,2)=", R.permutation(5,2)); // P(n,m)
53c.log("runif(10, -5, -1)=", R.runif(10, -5, -1).str());
54// c.log(".chain(10).runif(-5,-1)=", R.chain(10).runif(-5,-1));
55c.log("dunif(-3, -5, -1)=", R.dunif(-3, -5, -1));
56c.log("punif(-3, -5, -1)=", R.punif(-3, -5, -1));
57c.log("qunif(0.5, -5, -1)=", R.qunif(0.5, -5, -1));
58
59var x = R.rnorm(10, 0, 1);
60c.log("x=", R.str(x));
61c.log("x.sort()=", x.sort().str());
62
63c.log("rbinom(10, 5, 0.5)=", R.rbinom(10,5,0.5));
64c.log("dbinom(4, 5, 0.5)=", R.dbinom(4,5,0.5));
65c.log("dbinom(5, 5, 0.5)=", R.dbinom(5,5,0.5));
66c.log("pbinom(4, 5, 0.5)=", R.pbinom(4,5,0.5));
67c.log("qbinom(0.9, 5, 0.5)=", R.qbinom(0.9,5,0.5));
68
69var t1=R.ttest({x:x, mu:0} );
70R.report(t1);
71
72var A = [[1,2,3],[4,5,6],[7,3,9]];
73var iA = M.inv(A);
74c.log("A=", R.str(A));
75c.log("iA=", R.str(iA));
76var AiA = M.dot(A, iA);
77
78c.log("AiA=", R.str(AiA));
79
80c.log("====iA=====\n", M.str(iA))
81```
82
83## run
84
85```
86D:\Dropbox\github\rlab>node rtest
87dice= [ 1, 2, 3, 4, 5, 6 ]
88x= [ 2, 1, 3, 4, 6, 5 ]
89chain1:x= [ 6, 2, 3, 5, 1, 4 ]
90chain2:x= [1, 2, 5, 6, 6, 3, 6, 6, 2, 5]
91x= [ 5, 6, 3, 4, 6, 3, 4, 2, 5, 2 ] max= 6 min= 2 mean= 4 sd= 1.4907119849998598
92
93cov(x,x)= 1.4907119849998598
94cor(x,x)= 1
95factorial(10)= 3628800
96lfactorial(10)= 15.1044
97choose(5,2)= 10
98lchoose(5,2)= 2.302585092994045
99permutation(5,2)= 20
100runif(10, -5, -1)= [-3.3, -2.68, -3.5, -2.96, -4.48, -1.9, -2.12, -2.02, -4.59,
101-4.09]
102dunif(-3, -5, -1)= 0.25
103punif(-3, -5, -1)= 0.5
104qunif(0.5, -5, -1)= -3
105x= [0.79, 0.49, 1.01, -1.13, 0.19, 0.4, -0.14, 1.01, 0.1, -1]
106x.sort()= [-0.14, -1, -1.13, 0.1, 0.19, 0.4, 0.49, 0.79, 1.01, 1.01]
107rbinom(10, 5, 0.5)= [ 3, 2, 3, 2, 3, 2, 3, 1, 2, 1 ]
108dbinom(4, 5, 0.5)= 0.15625
109dbinom(5, 5, 0.5)= 0.03125
110pbinom(4, 5, 0.5)= 0.96875
111qbinom(0.9, 5, 0.5)= 4
112=========== report ==========
113name : "ttest(X)"
114h : "H0:mu=0"
115alpha : 0.05
116op : "="
117pvalue : 0.49
118ci : [-0.37, 0.71]
119df : 9
120mean : 0.17
121sd : 0.75
122A= [[1, 2, 3], [4, 5, 6], [7, 3, 9]]
123iA= [[-0.9, 0.3, 0.1], [-0.2, 0.4, -0.2], [0.77, -0.37, 0.1]]
124AiA= [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
125====iA=====
126 [[ -0.9, 0.3, 0.1],
127 [ -0.2, 0.4, -0.2],
128 [ 0.77, -0.37, 0.1]]
129```
130
131