Определите пользовательскую функцию, которая может быть применена к любому столбцу или последовательности целых чисел (R) - PullRequest
0 голосов
/ 24 января 2019

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

Я попробовал следующий (упрощенный) код:

my_function <- function(x) {
    if (x <= 75){
        return(0.793)
        }
    else {
        return(0.956)
        }       
}

Это хорошо работает, когда x принимает одно числовое значение. Тем не менее, я хотел бы оценить следующее:

my_function(seq(from = 1, to = 1500, by = 1))

Я не знаю, как указать, что x может быть вектором при определении функции T01.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

ifelse - это встроенная функция R, которая может применять такую ​​логику к векторам:

ifelse(c(70:80) <= 75, 0.793, 0.956)

Вывод:

# [1] 0.793 0.793 0.793 0.793 0.793 0.793 0.956 0.956 0.956 0.956 0.956
0 голосов
/ 24 января 2019

Это должно сделать это

my_function <- function (X) {
  X[X <= 75L] <- .793
  X[X > 75L] <- .956
  X
}
my_function(100)
# [1] 0.956
my_function(c(70:80))
#  [1] 0.793 0.793 0.793 0.793 0.793 0.793 0.956 0.956 0.956 0.956 0.956
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...