Онлайн словарь
& . 1 2 3 4 5
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Μ
А Б В Г Д Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я
Я ЯГ ЯЗ ЯП ЯТ

Язык программирования R/Управляющие структуры

[loadfile: templates/common/google_ads.txt is empty]
 
Язык_программирования_R/Навигация
= Условные операторы =
= if() =
* Помощь при программировании:
> ?Control
Оператор if:
if (условие){
выполняется если условие верно
} else {
выполняется если условие не верно
}
= ifelse() =
Команда ifelse() воспринимает первый аргумент как условие, второй аргумент возвращается если условие верно, а третий аргумент - если нет. Таким образом условие может быть вектором. Например, мы генерируем последовательность от 1 до 10 и хотим вывести значения меньше чем 5 и больше чем 8.
> x ifelse(x8, x, 0)
[1] 1 2 3 4 0 0 0 0 9 10
= Циклы =
"R" позволяет реализовать циклы тремя путями:
* циклы 'for';
* циклы с предусловием ('while');
* 'бесконечные' циклы ('repeat');
= Циклы 'for' =
Для использования оператора for требуется указать индекс (в примере - k) и вектор (в примере - 1:5), а также указать выполняемую конструкцию и указать повторяемые операторы в фигурных скобках. Механизм работы следующий:
# интерпретатор последовательно выбирает значения из вектора и присваивает их переменной k;
# с каждым значением k выполняется список функций в фигурных скобках.
> for (k in 1:5){
+ print(k)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
= Циклы с предусловием ('while') =
Синтаксис цикла while вполне стандартен:
# Ключевое слово while.
# Условие выполнимости в скобках.
# Список функций для итерированного выполнения в фигурных скобках.
> g while (g
= 'Бесконечные' циклы ('repeat') =
Нужно быть осторожным при использовании этого типа циклов, так как неправильное использование прерываний цикла (оператора break) может привести к бесконечному выполнению (зависанию) цикла.
Синтаксис следующий:
# Ключевое слово repeat.
# Список функций для итерированного выполнения в фигурных скобках.
# Наличие условия прерывания выполнения внутри цикла.
> repeat {
+ g 1.0) break
+ cat(g,'\n')
+ }
-1.214395
0.6393124
0.05505484
-1.217408
= Неявные циклы =
Циклы обычно медленны и лучше избегать их по возможности.
* Функция apply() может применить функцию к элементу матрицы или массиву. Чтобы применить к строке, нужно вторым параметром отдать цифру 1; чтобы применить к столбцу - 2.
> N x1 x2 male y mydat apply(mydat,1,mean) # применяет функцию к каждой строке
[1] 1.1654 2.8347 -0.9728 0.6512 -0.0696 3.9206 -0.2492 3.1060 2.0478 0.5116
> apply(mydat,2,mean) # применяет функцию к каждому столбцу
y x1 x2 male
3.2468 0.1415 1.2900 0.5000
* Функция lapply() применяет функцию к каждому столбцу структуры и возвращает список.
> lapply(mydat,mean) # возвращает список
$y
[1] 3.247
$x1
[1] 0.1415
$x2
[1] 1.29
$male
[1] 0.5
* Функция sapply() похожа, но не возвращает ничего на экран. Могут существовать векторы или матрицы зависящие от этой функции.
> sapply(mydat,mean) # возвращает вектор
y x1 x2 male
3.2468 0.1415 1.2900 0.5000
* Функция tapply() применяет функцию к каждому уровню factor-а.
> tapply(mydat$y,mydat$male,mean) # применяет функцию к каждому уровню factor-а.
0 1
1.040 5.454
= Итераторы =
Циклы в "R" обычно медленны. Итераторы могут быть более эффективны, чем циклы. Для более подробного изучения посетите ref-en.
= Функции =
Определение функции - это присвоение блока операторов переменной. Синтаксис:
# Переменная.
# Оператор присвоения.
# Ключевое слово function.
# Список аргументов в круглых скобках.
#
fn=function(a) {
+ if (a) {
+ print('true');
+ } else {
+ print('false');
+ }
+ }
> fn(TRUE)
[1] 'true'
> fn(F)
[1] 'false'
= Линковка "C" с "R" =
* Смотрите wikiversity v:How_to_use_R/Tutorials/Connecting_Fortran_and_R
Connecting Fortran and Rref-en.
*ref-en.
= Ссылки =
reflist
en:R_Programming/Control_Structures
на заглавную О сайте10 самыхСловариОбратная связь к началу страницы
© 2008-2014

online
magazines pdf download
download magazine pdf
download ebooks pdf
XHTML | CSS
1.8.11