У меня есть функция с четырьмя параметрами, три из которых взяты из данного кадра данных.Я хочу иметь возможность использовать функцию с данным фреймом данных, используя вектор чисел в качестве аргумента для четвертого параметра.Я знаю, как делать с одним значением за раз, но я уверен, что есть прямой способ сделать это, возможно, используя for
loop
Вот пример, в котором a и b являются переменными из dfdataframe, c - количество строк в df, а d - вектор целых чисел от 1 до 3, скажем, так:
set.seed(42)
a<-runif(100,1,100)
b<-runif(100,1,100)
df<-data.frame(a,b)
fun1 <- function (a, b, c, d) {
z <- sum (( a - d ) * b / c )
return(z)
}
Если я запускаю его по одному значению за раз:
fun1(df$a, df$b, nrow(df), 1)
fun1(df$a, df$b, nrow(df), 2)
fun1(df$a, df$b, nrow(df), 3)
> fun1(df$a, df$b, nrow(df), 1)
>[1] 2696.223
> fun1(df$a, df$b, nrow(df), 2)
>[1] 2643.748
> fun1(df$a, df$b, nrow(df), 3)
>[1] 2591.273
Что я хочу сделать, это что-то вроде этого (он должен вернуть все три значения одновременно):
fun1(df$a, df$b, nrow(df), c(1:3))
Надеюсь, я был ясен.Заранее спасибо.