UNPKG

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