Любая помощь приветствуется. R: Создание функции, которая вычисляет sqrt из x, если x отрицательно, возвращает Na - PullRequest
0 голосов
/ 19 марта 2020

Создайте функцию, которая, учитывая числовое значение c, вычисляет квадрат root от x. Если значение, содержащееся в x, отрицательно, оно должно вернуть NA.

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Вы можете попробовать ifelse, чтобы определить свою векторную пользовательскую функцию f, например,

f <- Vectorize(function(x) ifelse(x>=0,sqrt(x),NA))

или

f <- function(x) suppressWarnings(ifelse(x>=0,sqrt(x),NA))

Пример

> f(c(-1,0,1,2,3))
[1]       NA 0.000000 1.000000 1.414214 1.732051
0 голосов
/ 19 марта 2020

Один из вариантов:

fun <- function(x) x^.5
fun(3)
# [1] 1.732051
fun(-1)
# [1] NaN

Если вместо NaN требуется NA, используйте ifelse.

fun2 <- function(x) ifelse(x < 0, NA, x^.5)
fun2(-1)
# [1] NA
fun2(3)
# [1] 1.732051
fun2(c(-1, 3))
# [1]       NA 1.732051
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...