Здесь у вас правильный синтаксис
your_function <- function(arg1, arg2){
do_something
}
Здесь вам также нужно выражение, которое будет оцениваться так, как вы описали. @TimBiegeleisen предоставил один для вас, sum(a > b)
дает число вхождений значения больше, чем b в векторе a. Пропорция sum(a > b)/ length(a)
даст вам пропорцию значений в a, которые больше, чем b, и должны находиться в диапазоне от 0
для векторов a
, которые не имеют значений, превышающих b
, и 1
для векторов со всеми значениями больше b
и даст NaN
, если a
равно NULL
, NA
, если a
равно NA
. Если вы хотите, чтобы a
или b
имели определенные свойства, вы можете добавить проверку ошибок.
testfunction <- function(myVector, x){
sum(myVector > x)/length(myVector)
}
tesfunction(1:10, 2)
# [1] 0.8
В R последнее вычисленное выражение возвращается функцией, если нет явного return
. Если вы хотите применить определенные свойства, вы включаете вызов stop()
, например,
testfunction <- function(myVector, x){
if(length(x) != 1) stop("x must have length == 1")
sum(myVector > x)/length(myVector)
}
testfunction(1:10, 2:3)
# Error in testfunction(1:10, 2:3) : x must have length == 1