UNPKG

4.37 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
9## install
10
11```
12npm install rlab
13```
14
15## use rlab
16
17file : probabilityEx.js
18
19```javascript
20var R = require("rlab");
21var c = console;
22var dice = R.steps(1,6);
23c.log("sample(1:6, 10)", R.samples(dice, 10));
24c.log("runif(10,0,1)=", R.runif(10, 0, 1).str());
25c.log("rnorm(10,5,1)=", R.rnorm(10, 5, 1).str());
26c.log("dnorm(5,5,1)=", R.dnorm(5, 5, 1));
27c.log("pnorm(5,5,1)=", R.pnorm(5, 5, 1));
28c.log("qnorm(0.5,5,1)=", R.qnorm(0.5, 5, 1));
29c.log("rbinom(10, 5, 0.5)=", R.rbinom(10,5,0.5));
30c.log("dbinom(4, 5, 0.5)=", R.dbinom(4,5,0.5));
31c.log("dbinom(5, 5, 0.5)=", R.dbinom(5,5,0.5));
32c.log("pbinom(4, 5, 0.5)=", R.pbinom(4,5,0.5));
33c.log("qbinom(0.9, 5, 0.5)=", R.qbinom(0.9,5,0.5));
34```
35
36run :
37
38```
39$ node probabilityEx.js
40sample(1:6, 10) [ 3, 5, 3, 2, 3, 3, 1, 2, 4, 3 ]
41runif(10,0,1)= [0.9119,0.5899,0.6839,0.1350,0.6894,0.9512,0.8186,0.5826,0.4279,0
42.5125]
43rnorm(10,5,1)= [5.8961,5.4312,6.0002,5.3623,5.5281,4.4413,6.2144,5.7173,5.3111,1
44.3146]
45dnorm(5,5,1)= 0.3989422804014327
46pnorm(5,5,1)= 0.5
47qnorm(0.5,5,1)= 5
48rbinom(10, 5, 0.5)= [ 2, 1, 2, 2, 4, 4, 1, 4, 3, 2 ]
49dbinom(4, 5, 0.5)= 0.15625
50dbinom(5, 5, 0.5)= 0.03125
51pbinom(4, 5, 0.5)= 0.96875
52qbinom(0.9, 5, 0.5)= 4
53```
54
55file : statisticsEx.js
56
57```javascript
58var R = require("../rlab");
59var c = console;
60var v = [1,3,5];
61c.log("v.max()=", v.max());
62c.log("v.min()=", v.min());
63c.log("v.sum()=", v.sum());
64c.log("v.normalize()=", v.normalize());
65c.log("v.normalize().sum()=", v.normalize().sum());
66c.log("v.product()=", v.product());
67c.log("v.mean()=", v.mean());
68c.log("v.range()=", v.range());
69c.log("v.unique()=", v.unique());
70c.log("v.median()=", v.median());
71c.log("v.variance()=", v.variance());
72c.log("v.deviation()=", v.deviation());
73c.log("v.sd()=", v.sd(), " sd^2=", v.sd()*v.sd());
74c.log("v.cov(v)=", v.cov(v), "v.cor(v)=", v.cor(v));
75c.log("factorial(5)=", R.factorial(5));
76```
77
78run :
79
80```
81$ node statisticsEx.js
82v.max()= 5
83v.min()= 1
84v.sum()= 9
85v.normalize()= [ 0.1111111111111111, 0.3333333333333333, 0.5555555555555556 ]
86v.normalize().sum()= 1
87v.product()= 15
88v.mean()= 3
89v.range()= 4
90v.unique()= [ 1, 3, 5 ]
91v.median()= 3
92v.variance()= 2.6666666666666665
93v.deviation()= [ -2, 0, 2 ]
94v.sd()= 1.632993161855452 sd^2= 2.6666666666666665
95v.cov(v)= 2 v.cor(v)= 1
96factorial(5)= 120
97```
98
99file : matrixEx.js
100
101```javascript
102var M = require("../rlab").M;
103
104var c = console;
105var v = [1,2,3];
106c.log("v.sin()=", v.sin());
107c.log("v.norm2()=", v.norm2());
108c.log("v.norm2Squared()=", v.norm2Squared());
109
110var A = [[1,2,3],[4,5,6],[7,3,9]];
111var AiA = A.inv().dot(A);
112c.log("AiA=\n", AiA.strM());
113c.log("AiA.tr()=\n", AiA.tr().strM());
114c.log("A=\n", A.str());
115c.log("A.mul(0.1)=\n", A.mul(0.1).strM());
116c.log("A.row(1)=", A.row(1));
117c.log("A.col(1)=", A.col(1));
118c.log("A.sumM()=", A.sumM());
119c.log("A.rowSum(2)=", A.rowSum(2));
120c.log("A.colSum(2)=", A.colSum(2));
121c.log("A.mean(row)=", A.rowMean().str());
122c.log("A.mean(col)=", A.colMean().str());
123
124var D = M.diag(v);
125c.log("D=", D);
126
127var Eλ = M.eigR(A);
128var E = Eλ.E, λ=Eλ.lambda;
129c.log("E*[λ]*E-1=", E.dot(λ.diag()).dot(E.inv()).strM());
130```
131
132run :
133
134```
135$ node matrixEx.js
136v.sin()= [ 0.8414709848078965, 0.9092974268256817, 0.1411200080598672 ]
137v.norm2()= 3.7416573867739413
138v.norm2Squared()= 14
139AiA=
140 [[ 1, 1.11e-16, -1.11e-16],
141 [ 0, 1, 4.441e-16],
142 [ -3.331e-16, -3.331e-16, 1]]
143AiA.tr()=
144 [[ 1, 0, -3.331e-16],
145 [ 1.11e-16, 1, -3.331e-16],
146 [ -1.11e-16, 4.441e-16, 1]]
147A=
148 [[1.0000,2.0000,3.0000],[4.0000,5.0000,6.0000],[7.0000,3.0000,9.0000]]
149A.mul(0.1)=
150 [[ 0.1, 0.2, 0.3],
151 [ 0.4, 0.5, 0.6],
152 [ 0.7, 0.3, 0.9]]
153A.row(1)= [ 4, 5, 6 ]
154A.col(1)= [ 2, 5, 3 ]
155A.sumM()= 40
156A.rowSum(2)= [ 6, 15, 19 ]
157A.colSum(2)= [ 12, 10, 18 ]
158A.mean(row)= [2.0000,5.0000,6.3333]
159A.mean(col)= [4.0000,3.3333,6.0000]
160D= [ [ 1, 0, 0 ], [ 0, 2, 0 ], [ 0, 0, 3 ] ]
161E*[λ]*E-1= [[ 1, 2, 3],
162 [ 4, 5, 6],
163 [ 7, 3, 9]]
164```
165
166## IDE
167
168There is a webIDE server based on rlab , you may start it by :
169
170```
171node rserver.js
172```
173
174## Author
175
176Author: ccckmit
177
178Email : ccckmit@gmail.com
179
180