У меня есть функция с несколькими векторными и не векторными аргументами:
myfun <- function( number , vector1, vector2, number2) {
# test function thanks to Chi Pak
temp <- number * vector1 + max(vector2) * number2
return(temp)
}
Я хочу выполнить следующие действия:
- Вызовите эту функцию для вектора
number
,numberS
. - Для каждого номера выше я хочу, чтобы он вызывался с одним из каждого
vector1
, полученного из спискаlistofvectors1
. vector2
иnumber2
одинаковы для каждого вызова.
Чтобы прояснить это немного больше, вот что я сделал бы с циклами:
numberS <- c(1,2,3)
listofvectors1 <- list(c(1,2,3), c(5,6,7,8), c(0,1) ) # Obviously has the same length as numberS
vector2 <- c(0.5,3,1)
number2 <- 3.14
for (i in 1:length(numberS)){
myfun(numberS[i], listofvectors1[[i]], vector2, number2)
}
Я хочу сделать это с помощью такой функции, как apply()
, я пытался использовать mapply()
, но не могу заставить ее работать, так как она либо вкладывает все векторы, либо просто ничего не вкладывает.
for
. Пожалуйста, опишите подробнее, что делает функция (например, желаемый результат). - person Parfait   schedule 12.08.2017