R 2.10.1
Версия реализации R языка программирования RВерсия R, выпущенная 14 декабря 2009 года.
Примеры:
Hello, World! - R (534):
R позволяет заключать строки как в одинарные кавычки, так и в двойные, хотя при выводе использует только двойные.
print("Hello, World!")
Числа Фибоначчи - R (535):
Используется рекурсивное вычисление чисел Фибоначчи. Функция создается как объект и присваивается переменной fib
. Если функция return
не вызывается в явном виде, функция возвращает значение последней выполненной команды.
Функция print.table
выводит массив, полученный в результате применения функции fib
к массиву чисел от 1 до 16, как таблицу, т.е. в одну строку. Использование функции print
вывело бы элементы массива по одному на строку.
fib <- function(n) {
if (n < 2)
n
else
fib(n - 1) + fib(n - 2)
}
print.table(lapply(1:16, fib))
Факториал - R (536):
Используется итеративное вычисление факториала. Функция paste
конкатенирует безымянные аргументы, именованный аргумент sep
задает разделитель, использующийся при конкатенации (по умолчанию — пробел).
f <- 1
for (n in 0:16) {
print(paste(n, "! = ", f, sep = ""))
f <- f * (n + 1)
}
Факториал - R (537):
Используется встроенная функция prod
, вычисляющая произведение всех элементов массива. Для n = 0 ответ был бы неправильным, т.к. массив 1:0 состоит из двух элементов — 1 и 0.
for (n in 1:16) {
print(paste(n, "! = ", prod(1:n), sep = ""))
}
Квадратное уравнение - R (538):
Основной средой работы с R является интерактивный интерпретатор, поэтому достаточно определить функцию, решающую уравнение, и вызывать ее с нужными коэффициентами. Используется встроенный тип complex
.
quadratic <- function(a, b, c) {
if (a == 0) {
print("Not a quadratic equation.")
} else {
d <- b * b - 4 * a * c
if (d == 0) {
print(paste("x =", -b / 2 / a))
} else
if (d > 0) {
print(paste("x =", (-b + sqrt(d) * c(1, -1)) / 2 / a))
} else {
print(paste("x =", (-b + sqrt(as.complex(d)) * c(1, -1)) / 2 / a))
}
}
}
Комментарии
]]>blog comments powered by Disqus
]]>