Такой баголовок такого Злога.

понедельник, 2 февраля 2009 г.

R-artifiko №1

Сочинял статью, для которой требовалось провести ряд экспериментов в R. В ходе написания скриптов вылезали вроде бы простые задачки, решение которых казалось очевидным. Часто это очевидное решение не было правильным, и приходилось много внимания уделять чтению файлов помощи, изучению архива рассылок R и вики.
Заметку пишу, чтобы решения и выводы запомнились, и эти задачки больше затруднений не вызывали. Буду рад, если мои замечания окажутся полезными и для других пользователей этого пакета.
  • В R можно делать множественные присваивания: a <- b <- 3
  • Оператор целочисленного деления — %/%, деление по модулю — %%
  • Для меня оказался неожиданным результат работы функции округления round. В R используется округление по стандарту IEC 60559 «округление до чётной цифры»: round(1.5)=2, но round(2.5)=2. Если нужно «нормальное» округление, которому нас всех учили в школе, разумно использовать известный приём замены функции round функцией floor: round(a) = floor(a+0.5)
  • Значения в векторе перемешиваются функцией sample.
Очевидные и элементарные вещи, правда? Знали бы вы, сколько времени я потратил на то, чтобы все пункты из этого списка прояснить…