Вещественные и натуральные числа в R - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь создать функцию, которая принимает входные данные и выводит факториал числа. Если входные данные для функции - действительное число, но не натуральное число, округлите n до ближайшего натурального числа и напечатайте предупреждающее сообщение, предупреждающее пользователя о таком поведении.

Мои вопросы: Как проверить если ввод является действительным или натуральным числом?

Ответы [ 3 ]

1 голос
/ 21 февраля 2020

Это может помочь:

myFactorial <- function(x){
    if (any(x %% 1 != 0 | is.na(x))) message("Not all elements of the vector are natural numbers.")
    factorial(floor(x))
}
0 голосов
/ 25 февраля 2020

«Как проверить, является ли ввод действительным или натуральным числом?»

Мы можем использовать as.integer

is.natural <- function(x) as.integer(x) == x & x > 0
is.natural(3)
[1] TRUE
is.natural(0)
[1] FALSE
is.natural(1.5)
[1] FALSE
0 голосов
/ 21 февраля 2020

Вот пользовательская функция

f <- function(x) {
  if (x<=0 | x%%1!=0) warning("Input is not natural number!")
  factorial(max(1,as.integer(x)))
}

Пример

> f(3.5)
[1] 6
Warning message:
In f(3.5) : Input is not natural number!

> f(3)
[1] 6

> f(0.1)
[1] 1
Warning message:
In f(0.1) : Input is not natural number!

> f(-0.1)
[1] 1
Warning message:
In f(-0.1) : Input is not natural number!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...