r.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 05 Mar 2016 22:50:41 +0200
changeset 1936 998d6c646f20
parent 1928 eb1e2557ebf7
child 1937 095a0ab12893
permissions -rw-r--r--
Renaming columns
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    16
  ncol(matrix(1:6, 2, 3))
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    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)
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    22
  class(str)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    23
  unclass(str)
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
  str(c(1, 2))
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
  str(summary)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    27
Column names of datasets::
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    28
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    29
  names(...)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    30
  names(list(colA=1, colB=2))
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    31
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    32
Column/row names of matrixes::
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    34
  colnames(matrix(...))
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    35
  rownames(matrix(...))
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    37
List objects in global context: ``ls()``.
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    39
Objext size in memory: ``object.site(1:2)``
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
1936
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    41
Interactive session
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    42
===================
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    43
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    44
Controlling output precision::
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    45
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    46
  options(digits=3)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
    47
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
Debugging
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
=========
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
To mark function for debugging call::
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  debug(fun, text = "", condition = NULL)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
  debugonce(fun, text = "", condition = NULL)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
To return function to normal execution::
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
  undebug(fun)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  isdebugged(fun)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
1927
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    61
You can under to debug mode in any piece of code by calling ``browser``.
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    62
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    63
``traceback`` prints out the function call stack after an error occurs; does
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    64
nothing if there's no error.
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    65
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    66
``trace`` allows you to insert debugging code into a function a specific places.
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    67
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    68
``recover`` allows you to modify the error behavior so that you can browse the
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    69
function call stack.
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    70
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    71
Profiling
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    72
=========
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    73
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    74
How long execution of expression takes (in low sec/milisec resolution)::
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    75
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    76
  system.time(expr, gcFirst = TRUE)
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    77
  unix.time(expr, gcFirst = TRUE)
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    78
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    79
``Rprof`` function enable global profiling. ``summaryRprof`` function decrypt
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    80
profiling data::
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    81
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    82
  Rprof()       ## start profiling
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    83
  Rprof(NULL)   ## suspend profiling
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    84
  Rprof(append = TRUE)  ## resume profiling
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    85
  Rprof(NULL)   ## end profiling
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    86
  summaryRprof() ## investigate profiling report
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
    87
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    88
Generating random numbers
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    89
=========================
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    90
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    91
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
    92
with prefix ``r``::
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    93
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    94
  rnorm(n, mean = 0, sd = 1)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    95
  rt(n, df, ncp)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
  rbinom(n, size, prob)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
  rpois(n, lambda)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
  runif(n, min = 0, max = 1)
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
    99
  rexp
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   100
  rchisq
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   101
  rgamma
1926
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   103
In order to generate predictable sequences use::
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   104
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   105
  set.seed(seed, kind = NULL, normal.kind = NULL)
71949d52fd3a Inspecting objects, Debugging, Generating random numbers
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   106
1927
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   107
Sampling from array::
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   108
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   109
  sample(x, size, replace = FALSE, prob = NULL)
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   110
  sample.int(n, size = n, replace = FALSE, prob = NULL)
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   111
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   112
  sample(1:10, 10)  ## permutation!!
417ffd620c12 Profiling
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1926
diff changeset
   113
  sample(1:10, 100, replace=TRUE)
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   114
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   115
Looping over data
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   116
=================
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   117
1936
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   118
``lapply`` iterate over data and return list with result of function
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   119
application::
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   120
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   121
  lapply(1:5, function(x) x^2)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   122
  lapply(matrix(rnorm(20*10),20,10), mean)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   123
1936
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   124
Usually you don't need a list but a vector. ``sapply`` works like ``lapply`` but
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   125
also try to convert result to matrix or vector is dimantions and elvement types
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   126
permit this::
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   127
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   128
  lapply(list(1:5), mean)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   129
  [[1]]
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   130
  [1] 3
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   131
  sapply(list(1:5), mean)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   132
  [1] 3
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   133
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   134
``apply`` works on specific dimension of data so useful to work with matrixes
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   135
and data frames::
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   136
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   137
  apply(matrix(1:6, 2, 3), 1, min)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   138
  [1] 1 2
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   139
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   140
  apply(matrix(1:6, 2, 3), 2, max)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   141
  [1] 2 4 6
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   142
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   143
  apply(array(rnorm(2*2*10), c(2, 2, 10)), c(1, 2), mean)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   144
             [,1]       [,2]
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   145
  [1,] -0.2733804  0.3154234
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   146
  [2,]  0.1830982 -0.5889010
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   147
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   148
``colSums``, ``rowSums``, ``colMeans``, ``rowMeans`` is defined as optimized
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   149
equivalent for::
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   150
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   151
  rowSums = apply(x, 1, sum)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   152
  colSums = apply(x, 2, sum)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   153
  rowMeans = apply(x, 1, mean)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   154
  colMeans = apply(x, 2, mean)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   155
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   156
``split`` partitioning data on factor (analog of SQL ``group by``)::
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   157
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   158
  data<-data.frame(rnorm(10),rbinom(10,1,prob=.7))
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   159
  sdata<-split(data[,1],data[,2])
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   160
  lapply(sdata,mean)
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   161
1928
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   162
Exploring data
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   163
==============
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   164
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   165
Check `Inspecting objects`_ section.
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   166
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   167
Investigating unique values::
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   168
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   169
  sapply(data, unique)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   170
  sapply(data$col, unique)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   171
  sapply(data[,c("col1","col2")], unique)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   172
  sapply(data[,5:10], unique)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   173
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   174
  table(data$col)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   175
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   176
  tapply(data$what, data$by, unique)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   177
  tapply(data$what, data$by, summary)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   178
  tapply(data$what, data$by, range)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   179
  tapply(data$what, data$by, mean)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   180
  tapply(data$what, data$by, sd)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   181
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   182
Brief info about vectors and matrixes::
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   183
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   184
  summary(1:8)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   185
  summary(matrix(1:20, 4, 5))
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   186
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   187
Simple plots::
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   188
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   189
  i<-1:100
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   190
  x<-i/10
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   191
  y<-x^2
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   192
  plot(x,y)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   193
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   194
  hist(rpois(100,10))
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   195
  hist(rpois(100,10),breaks=20)
eb1e2557ebf7 Looping over data, Exploring data
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1927
diff changeset
   196
1936
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   197
Renaming columns
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   198
================
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   199
::
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   200
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   201
  names(d)[names(d)=="beta"] <- "two"
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   202
  names(d)[2] <- "two"
998d6c646f20 Renaming columns
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1928
diff changeset
   203