author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Sun, 28 Feb 2016 01:00:06 +0200 | |
changeset 1927 | 417ffd620c12 |
parent 1926 | 71949d52fd3a |
child 1928 | eb1e2557ebf7 |
permissions | -rw-r--r-- |
1926
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
1 |
.. -*- coding: utf-8 -*- |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
2 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
3 |
=== |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
R |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
5 |
=== |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
6 |
.. contents:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
:local: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
Inspecting objects |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
================== |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
Info about object dimensions:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
length(c(1,2,3)) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
dim(matrix(1:6, 2, 3)) |
1927 | 16 |
ncol(matrix(1:6, 2, 3)) |
17 |
nrow(matrix(1:6, 2, 3)) |
|
1926
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
18 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
19 |
Brief info about any object:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
20 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
21 |
typeof(str) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
22 |
str(c(1, 2)) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
23 |
str(summary) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
24 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
25 |
Brief info about vectors and matrixes:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
26 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
27 |
summary(1:8) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
28 |
summary(matrix(1:20, 4, 5)) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
29 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
30 |
Brief info on datasets and matrixes:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
31 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
32 |
names(list(colA=1, colB=2)) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
33 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
34 |
Debugging |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
35 |
========= |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
36 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
37 |
To mark function for debugging call:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
38 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
39 |
debug(fun, text = "", condition = NULL) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
40 |
debugonce(fun, text = "", condition = NULL) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
41 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
42 |
To return function to normal execution:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
43 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
44 |
undebug(fun) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
45 |
isdebugged(fun) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
46 |
|
1927 | 47 |
You can under to debug mode in any piece of code by calling ``browser``. |
48 |
||
49 |
``traceback`` prints out the function call stack after an error occurs; does |
|
50 |
nothing if there's no error. |
|
51 |
||
52 |
``trace`` allows you to insert debugging code into a function a specific places. |
|
53 |
||
54 |
``recover`` allows you to modify the error behavior so that you can browse the |
|
55 |
function call stack. |
|
56 |
||
57 |
Profiling |
|
58 |
========= |
|
59 |
||
60 |
How long execution of expression takes (in low sec/milisec resolution):: |
|
61 |
||
62 |
system.time(expr, gcFirst = TRUE) |
|
63 |
unix.time(expr, gcFirst = TRUE) |
|
64 |
||
65 |
``Rprof`` function enable global profiling. ``summaryRprof`` function decrypt |
|
66 |
profiling data:: |
|
67 |
||
68 |
Rprof() ## start profiling |
|
69 |
Rprof(NULL) ## suspend profiling |
|
70 |
Rprof(append = TRUE) ## resume profiling |
|
71 |
Rprof(NULL) ## end profiling |
|
72 |
summaryRprof() ## investigate profiling report |
|
73 |
||
1926
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
74 |
Generating random numbers |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
75 |
========================= |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
76 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
77 |
For each distribution there are exists corresponding generation function, named |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
78 |
with prefix ``r``:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
79 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
80 |
rnorm(n, mean = 0, sd = 1) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
81 |
rt(n, df, ncp) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
82 |
rbinom(n, size, prob) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
83 |
rpois(n, lambda) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
84 |
runif(n, min = 0, max = 1) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
85 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
86 |
In order to generate predictable sequences use:: |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
87 |
|
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
88 |
set.seed(seed, kind = NULL, normal.kind = NULL) |
71949d52fd3a
Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
89 |
|
1927 | 90 |
Sampling from array:: |
91 |
||
92 |
sample(x, size, replace = FALSE, prob = NULL) |
|
93 |
sample.int(n, size = n, replace = FALSE, prob = NULL) |
|
94 |
||
95 |
sample(1:10, 10) ## permutation!! |
|
96 |
sample(1:10, 100, replace=TRUE) |